python - 在 Python 中附加路径目录时遇到问题
问题描述
以下脚本对我来说运行得很好:
def readData(fname):
with open(fname, encoding="utf8") as f:
read_data = f.read()
return read_data
data = readData('D:/bar/foo.txt')
但是当我尝试运行它时:
from sys import path
path.append('D:/bar/')
def readData(fname):
with open(fname, encoding="utf8") as f:
read_data = f.read()
return read_data
data = readData('foo.txt')
“with”行产生这个错误:
FileNotFoundError: [Errno 2] No such file or directory: 'foo.txt'
当我打印sys.path时,它确实包含bar目录。
为什么 Python 找不到我的文件?加载时需要指定目录吗?
解决方案
正如 Bart 所提到sys.path
的,它告诉解释器应该在哪里查找您尝试通过import
语句使用的模块。
sys.path
open()
与内置函数(文档)没有任何关系。
file
您提供给函数的参数open()
应该是文件的绝对路径,或工作目录的相对路径。
您的第一个示例有效,因为您提供了文件的绝对路径。您的第二个示例(大概)不起作用,因为您正在执行的脚本foo.txt
不在同一个目录中(或者如果您以交互方式使用解释器,foo.txt
则不在工作目录中)。
推荐阅读
- html - 有没有办法对列表服务器端进行分页?
- android - 我如何找到增加我的 andorid so 文件大小的原因
- c# - 在 Swagger UI 中的方法描述中渲染模型?
- javascript - 如何使用javascript将旋转后的图像保存在本地下载文件夹中
- python - 如何使用光标在 OpenCV 中移动视频?
- java - spring-cloud-contract-wiremock | 自动注册存根与以编程方式注册
- c++ - 从 bin 值中读取位
- php - 如果 WooCommerce 中的一种变体缺货,则将所有变体设置为缺货
- redis - Redis ZADD:仅在分数较低时更新
- reactjs - 如何使用反应和打字稿单击对话框外的任何位置关闭对话框?