我的桌面上有两个目录,DIR1
和DIR2
,其中包含以下文件:
DIR1:
file1.py
DIR2:
file2.py myfile.txt
这些文件包含以下内容:
import sys
sys.path.append('.')
sys.path.append('../DIR2')
import file2
import sys
sys.path.append( '.' )
sys.path.append( '../DIR2' )
MY_FILE = "myfile.txt"
myfile = open(MY_FILE)
some text
现在,有两种情况。第一个有效,第二个错误。
我cd
进入DIR2
并运行file2.py
,它运行没有问题。
我cd
进入DIR1
并运行file1.py
,它抛出一个错误:
Traceback (most recent call last):
File "<absolute-path>/DIR1/file1.py", line 6, in <module>
import file2
File "../DIR2/file2.py", line 9, in <module>
myfile = open(MY_FILE)
IOError: [Errno 2] No such file or directory: 'myfile.txt'
但是,这对我来说毫无意义,因为我已经使用命令sys.path.append('../DIR2')
将路径附加到file1.py
。
为什么当file1.py
,当file2.py
与myfile.txt
在同一个目录中却抛出错误时会发生这种情况?谢谢您。
替换
与
这就是你的问题所指的相对路径解决方案。这假设您是从dir one到myfile.txt运行它。。。所以不太理想。
如果您知道my_file.txt总是与file2.py在同一个目录中,那么您可以在file2中尝试类似的操作。。
可以使用模块的
__file__
属性创建相对于模块的路径。例如:不管脚本从哪里开始,这都应该符合您的要求。
相关问题 更多 >
编程相关推荐