Python-[Errno 2]没有这样的文件或目录,

Python-[Errno 2]没有这样的文件或目录,,python,Python,我正试图对我的前任编写的python脚本进行一个小的修改,但我遇到了一个问题。我学过编程,但编码不是我的职业 python脚本处理SQL查询并将其写入excel文件,在一个文件夹中,所有查询都以.txt格式保存。该脚本将创建在文件夹中找到的查询列表,并在for循环中逐个遍历这些查询 我的问题是,如果我想重命名或在文件夹中添加查询,我会得到一个“[Errno 2]没有这样的文件或目录”错误。该脚本使用相对路径,因此我感到困惑,为什么它总是对不存在的文件出错 queries_pathNIC = ".

我正试图对我的前任编写的python脚本进行一个小的修改,但我遇到了一个问题。我学过编程,但编码不是我的职业

python脚本处理SQL查询并将其写入excel文件,在一个文件夹中,所有查询都以.txt格式保存。该脚本将创建在文件夹中找到的查询列表,并在for循环中逐个遍历这些查询

我的问题是,如果我想重命名或在文件夹中添加查询,我会得到一个“[Errno 2]没有这样的文件或目录”错误。该脚本使用相对路径,因此我感到困惑,为什么它总是对不存在的文件出错

queries_pathNIC = "./queriesNIC/"

def queriesDirer():
    global filelist
    l = 0
    filelist = []
    for file in os.listdir(queries_pathNIC):
        if file.endswith(".txt"):
            l+=1
            filelist.append(file)
    return(l)
当主要功能出现问题时:

for round in range(0,queriesDirer()):
    print ("\nQuery :",filelist[round])
    file_query = open(queries_pathNIC+filelist[round],'r'); # problem on this line
    file_query = str(file_query.read())
queriesNIC文件夹的内容

  • 00\u 1\u硬件\u WelcomeNew.txt
  • 00\u 2\u软件\u WelcomeNew.txt
  • 00\u 3\u软件\u WelcomeNew\u AUTORENEW.txt
脚本运行没有问题,但是如果我将第一个查询名称更改为 “00\u 1\u Hardware\u WelcomeNew\u sth.txt”或任何其他内容,我收到以下错误消息:

FileNotFoundError: [Errno 2] No such file or directory: './queriesNIC/00_1_Hardware_WelcomeNew.txt'
我还尝试向文件夹中添加新的文本文件(例如:“00_1_Hardware_Other.txt”),脚本只是跳过处理我添加的文本文件,只处理原始文件

我正在使用Python 3.4

有人有什么建议吗?可能是什么问题


谢谢

以下方法将是一种改进。
glob
模块可以非常轻松地生成以
.txt
结尾的文件列表,而无需创建列表

import glob, os

queries_pathNIC = "./queriesNIC/"

def queriesDirer(directory):
    return glob.glob(os.path.join(directory, "*.txt"))

for file_name in queriesDirer(queries_pathNIC):
    print ("Query :", file_name)

    with open(file_name, 'r') as f_query:
        file_query = f_query.read()

根据您提供的示例,不清楚您是否需要进一步访问
round
变量或文件列表

查看您正在使用的操作系统?此脚本如何运行?还有其他部分吗?因为
filelist
是全局的,所以很可能在其他地方修改它,甚至在运行之间保存它,以避免重新处理已处理的文件。