Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从不同目录读取python中的文件_Python - Fatal编程技术网

从不同目录读取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。请注意,这将更改当前工作目录,您可能希望在尝试从上一个工作目录打开另一个文件之前将其更改回原来的工作目录。