显然,python接受与第一个被调用文件相关的所有导入
我有以下文件结构
src
|--myunittests.py
|--subfolder1
|--__init__.py
|--printFileContent.py
|--subfolder2
|--__init__.py
|--file
myunittests.py将测试printFileContent中函数的行为:
from subfolder1.printFileContent import printFileContent
printFileContent()
printFileContent打印子文件夹中包含的文件的内容:
def printFileContent():
with open("./subfolder2/file") as file:
for line in file:
print(line)
if __name__ == "__main__":
printFileContent()
文件只包含一些文本
问题:
在子文件夹1中执行python3 printFileContent.py
将正确输出文件内容。
但是执行python3 myunittests.py
会产生错误,即找不到文件
有办法解决这个问题吗(有没有办法告诉python,以编程方式引用的相对文件应该与它们所使用的文件相对
约束
这种行为何时发生
当file
是在printFileContent.py
内使用的图标时,从myunittests.py调用printFileContent.py
次要问题: 是否有合适的标题/公告词来解释/发现这种行为及其问题
如果无法修改
printFileContent.py
,可以保存当前目录,转到subfolder1
目录,然后返回原始目录:如果您必须经常使用这个方法,您可以使用
with
语句使这个行为成为一个可用的类,这样它更易于使用并且更健壮(您不会忘记chdir
返回):如果可以修改
printFileContent.py
,那么就不那么麻烦了:相关问题 更多 >
编程相关推荐