我为py 3编写了一个包,但有一些问题:
Package
__init__.py
File.txt
Run.py
def run():
open ("File.txt")
现在我在控制台中导入Run.py
,但是当我使用Run.run()
时
它说没有名为File.txt
的文件。
请帮忙!
答案 0 :(得分:2)
导入模块/包时,它不会更改您所在的工作目录。您可以使用import os
进行检查,然后在导入之前和之后检查os.getcwd()
。因此,open("File.txt")
在当前工作目录中查找文件,该文件通常是您在启动python之前在shell上的目录。例如:
/a/b/c $ python
>>> import os
>>> os.getcwd()
"/a/b/c"
>>> from Package import Run # import run.py
>>> os.getcwd()
"/a/b/c"
要查找当前文件所在的目录(您要在Run.py
中执行此操作),请使用
import os
path = os.path.dirname(os.path.realpath(__file__))
如in this question所述。然后就可以了
open(os.path.join(path, "File.txt"))
打开右侧File.txt
。但请注意,__file__
仅适用于实际脚本文件,因此您无法在大多数IDE和交互式解释器中使用它。