python-3.x - FileNotFoundError 即使文件存在
问题描述
尝试使用 wit open .. 打开文件时出现文件不存在的错误。
我正在尝试解析一些 txt 文件,在本地工作时它没有问题,但是当我尝试连接到网络文件夹时问题就开始了。奇怪的是,它确实看到了该文件,但说它没有找到。我指的路径是 '//10.8.4.49/Projects/QASA_BR_TCL_Env_7.2.250/Utils/BR_Env/Call Generator/results/Console_Logs/*' (这个文件夹里全是 txt 文件。
但我仍然收到此错误: FileNotFoundError: [Errno 2] No such file or directory: 'Console_log_01-01-2019_08-17-56.txt'
如您所见,它确实看到了所需的文件。为了得到这个文件,我正在解析以下方式拆分路径:
readFile = name.split("/")[9].split("\\")[1]
因为如果我正在查看我的文件列表,我会通过以下方式查看它们:
['//10.8.4.49/Projects/QASA_BR_TCL_Env_7.2.250/Utils/BR_Env/Call Generator/results/Console_Logs\Console_log_01-01-2019_08-17-56.txt',
分裂后我得到:
Console_log_01-01-2019_08-17-56.txt
它仍然说找不到文件。
def main():
lines =0
path = '//10.8.4.49/Projects/QASA_BR_TCL_Env_7.2.250/Utils/BR_Env/Call Generator/results/Console_Logs/*'
files = glob.glob(path)
print ("files")
print ('\n')
print(files)
for name in glob.glob(path):
print (path)
readFile = name.split("/")[9].split("\\")[1]
print(readFile)
with open(readFile,"r") as file:
lines = file.readlines()
print (lines)
main()
files
['//10.8.4.49/Projects/QASA_BR_TCL_Env_7.2.250/Utils/BR_Env/Call Generator/results/Console_Logs\\Console_log_01-01-2019_08-17-56.txt', '//10.8.4.49/Projects/QASA_BR_TCL_Env_7.2.250/Utils/BR_Env/Call Generator/results/Console_Logs\\Console_log_01-01-2019_08-18-29.txt']
Traceback (most recent call last):
//10.8.4.49/Projects/QASA_BR_TCL_Env_7.2.250/Utils/BR_Env/Call Generator/results/Console_Logs/*
Console_log_01-01-2019_08-17-56.txt
File "C:/Users/markp/.PyCharmEdu2018.3/config/scratches/scratch_3.py", line 19, in <module>
main()
File "C:/Users/markp/.PyCharmEdu2018.3/config/scratches/scratch_3.py", line 16, in main
with open(readFile,"r") as file:
FileNotFoundError: [Errno 2] No such file or directory: 'Console_log_01-01-2019_08-17-56.txt'
Process finished with exit code 1
解决方案
当您查找文件时,您正在整个路径中查找,但是当您打开文件时,您正在引用它,就好像它在本地路径中一样,要么更改当前工作目录
os.chdir(path)
在打开文件之前,或者在 open 语句中使用
open(os.path.join(path,filename))
如果您必须在程序中只打开一个文件,我推荐第一种方法,如果您在多个目录中打开多个文件,我推荐第二种方法。
将来更好地格式化您的问题,堆栈溢出有多种工具,使用它们,您还可以查看文本的外观,请务必在发布前查看它。为您的代码使用代码括号,这将有助于任何试图回答的人。
推荐阅读
- python - Python开发的纵横交错游戏-添加随机输入功能
- html - Angular 11.0.3 中的 ngClass 错误(无法绑定 ngClass,因为它不是 div 的已知属性)
- laravel - 无法在 laravel 中使用 mailtrap 发送电子邮件
- bash - 在 bash 脚本中输入命令
- node.js - nodejs mongoose 错误 TS2551:“文档”类型上不存在属性“isDeleted”。你的意思是'$isDeleted'
- mysql - 根据两个表的几个条件计算出现次数
- mysql - mysqld绑定地址不会改变
- android - BlurMask Ffmpeg中的半径值无效
- visual-studio-code - 如何捕获为 VSCode 扩展 api 添加/删除/修改的行
- kubernetes - Kubernetes CoreDns livenessProbe url 缺少 ip/hots