FileNotFoundError 即使文件存在

FileNotFoundError even though file exist

尝试使用 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] 没有这样的文件或目录:'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(os.path.join(path,filename))

如果您只需要在程序中打开一个文件,我推荐第一种方法;如果您在多个目录中打开多个文件,我推荐第二种方法。

在未来更好地格式化你的问题,stack overflow 有多种工具,使用它们,你也可以看到你的文本看起来如何,确保在发布之前先看一下。使用代码括号作为您的代码,这将帮助任何试图回答的人。