从不同目录读取python中的文件
可能是一个简单的查询。。但基本上,我在目录从不同目录读取python中的文件,python,Python,可能是一个简单的查询。。但基本上,我在目录“/foo/bar/foobar.txt” 我在目录“/some/path/read\u foobar.py”中工作 现在我想读取文件“foobar.txt”,但我没有给出完整的路径,而是想在路径中添加/foo/bar/ 因此,在read_foobar.py的开头添加了以下内容 import sys sys.path.append("/foo/bar") 但是当我尝试读取open(“foobar.txt”,“r”)时,它无法找到该文件? 我该怎么做?
“/foo/bar/foobar.txt”
我在目录“/some/path/read\u foobar.py”
中工作
现在我想读取文件“foobar.txt”,但我没有给出完整的路径,而是想在路径中添加/foo/bar/
因此,在read_foobar.py的开头添加了以下内容
import sys
sys.path.append("/foo/bar")
但是当我尝试读取open(“foobar.txt”,“r”)
时,它无法找到该文件?
我该怎么做?
谢谢很遗憾你不能。PATH环境变量仅由操作系统用于搜索可执行文件,python使用它(连同环境变量PYTHONPATH)搜索要导入的python模块 <>您可能想考虑从当前工作目录中设置一个符号链接到该文件。
ln -s /foo/bar/foobar.txt /some/path/foobar.text
不幸的是你不能。PATH环境变量仅由操作系统用于搜索可执行文件,python使用它(连同环境变量PYTHONPATH)搜索要导入的python模块 <>您可能想考虑从当前工作目录中设置一个符号链接到该文件。
ln -s /foo/bar/foobar.txt /some/path/foobar.text
sys.path
用于设置用于查找python模块的路径。除了编写在打开文件时有目录列表可供搜索的帮助函数外,我不认为有标准模块提供此功能。sys.path
用于设置用于查找python模块的路径。除了编写在打开文件时有目录列表可供搜索的帮助函数外,我不相信有标准模块提供此功能。根据我收集的信息和一些快速测试,在导入文件/模块时,将路径附加到sys.path
将使python在该路径中搜索,但在打开文件/模块时则不会。假设我们在/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
根据我从中收集的信息和一些快速测试,在sys.path
中添加一个路径将使python在导入文件/模块时在该路径中进行搜索,但在打开它时不会。假设我们在/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
您可以这样做:
import os
os.chdir('/foo/bar')
f = open('foobar.txt', 'r')
您可以这样做:
import os
os.chdir('/foo/bar')
f = open('foobar.txt', 'r')
+1.请注意,这将更改当前工作目录,您可能希望在尝试从上一个工作目录打开另一个文件之前将其更改回+1。请注意,这将更改当前工作目录,您可能希望在尝试从上一个工作目录打开另一个文件之前将其更改回原来的工作目录。