从不同的目录中读取python中的文件

时间:2014-05-27 17:10:35

标签: python

可能是一个简单的查询..但基本上,我在目录"/foo/bar/foobar.txt"

中有数据

我正在目录"/some/path/read_foobar.py"中工作..

现在我想阅读文件" foobar.txt"但我没有给出完整的路径,而是考虑将/ foo / bar /添加到路径中。

所以,在read_foobar.py

的开头添加了以下内容
import sys
sys.path.append("/foo/bar")

但是当我尝试阅读open("foobar.txt","r")时,它无法找到该文件? 我该怎么做呢? 感谢

4 个答案:

答案 0 :(得分:2)

sys.path用于设置用于查找python模块的路径。如果没有编写一些帮助函数,它在打开文件时有一个要搜索的目录列表,我不相信有一个提供此功能的标准模块。

答案 1 :(得分:2)

从我从here收集的内容和一些快速测试中,在sys.path文件/模块时,向import添加路径会在该路径中进行python搜索,但不会在open {1}} - 它。假设我们在foo.py

中有一个名为/foo/bar/的文件
import sys
sys.path.append("/foo/bar/")
try:
    f = open('foo.py', 'r')
except:
    print('this did not work') # this will print

import foo # no problems here

答案 2 :(得分:2)

你可以这样做:

import os
os.chdir('/foo/bar')
f = open('foobar.txt', 'r')

答案 3 :(得分:1)

不幸的是,你不能。 PATH环境变量仅供操作系统用于搜索可执行文件文件,python使用它(连同环境变量PYTHONPATH)来搜索要导入的python模块。

您可能需要考虑从当前工作目录

设置指向该文件的符号链接
ln -s /foo/bar/foobar.txt /some/path/foobar.text