【发布时间】:2015-10-20 19:29:04
【问题描述】:
我最近开始使用导入来更好地组织我在 python 中的代码。我在file1.py 中的原始代码使用了以下代码:
def foo():
files = [f for f in os.listdir('.') if os.path.isfile(f)]
print files
#do stuff here....
其中引用了与代码相同文件夹中的所有文件,print files 将正确的输出显示为文件名数组。
但是,我最近将目录结构更改为:
./main.py
./folder1/file1.py
./folder1/data_file1.csv
./folder1/data_file2.csv
./folder1/......
在 main.py 中,我使用:
import imp
file1 = imp.load_source('file1', "./folder1/file1.py")
.
.
.
file1.foo()
现在,files 是一个空数组。发生了什么?除了相对文件路径之外,我还尝试过绝对文件路径。使用data_file1.csv 直接声明一个数组是可行的,但我无法使用此导入来处理其他任何事情。
这里发生了什么?
【问题讨论】:
-
你把
file1和朋友收藏到files了吗? -
它完全是空的?它甚至没有
main.py? -
@abgordon ,您是否要在
folder1中查找文件? -
os.pathfromfoo()在main.py中使用,因此它调用main.py路径而不是file1.py's -
@MarkZampedroni 这绝对是真的,但需要下面建议的额外
join代码。
标签: python filepath python-import