我一直在尝试这段代码,尝试打开目录中的多个文件。该目录包含10个文本文件。我想打开每个文件,对其进行一些处理(即删除停用词),然后将转换后的文本输出到其他目录中的新文件中。但是,我有这个问题:
FileNotFoundError:[错误2]没有这样的文件或目录:'1980'
该文件肯定在目录中,并且我一直在提供绝对路径。打开文件之前,我已经查看了当前的工作目录,它没有返回我给它的绝对路径,而是返回了该项目所在的目录。非常感谢获得代码以打开所需文件并将结果写入输出文件的帮助!这是我的代码:
path = 'C:/Users/User/Desktop/mini_mouse'
output = 'C:/Users/User/Desktop/filter_mini_mouse/mouse'
for root, dir, files in os.walk(path):
for file in files:
print(os.getcwd())
with open(file, 'r') as f, open('NLTK-stop-word-list', 'r') as f2:
x = ''
mouse_file = f.read().split() # reads file and splits it into a list
stopwords = f2.read().split()
x = (' '.join(i for i in mouse_file if i.lower() not in (x.lower() for x in stopwords)))
with open('out', 'w') as output_file:
output_file.write((' '.join(i for i in mouse_file if i.lower() not in (x.lower() for x in stopwords))))
答案 0 :(得分:0)
您在Windows上吗?每当我在Windows上执行绝对路径时,都需要使用backslash()进行路径而不是正斜杠(/)。
答案 1 :(得分:0)
您的代码存在问题,因为'1980'
并不是文件的完整路径,而仅仅是string
。您应该像下面这样附加路径的其余部分,例如使用path.join
:
with open(os.path.join(path, file), 'r') as f, open(os.path.join(path, 'NLTK-stop-word-list'), 'r') as f2:
然后Python将能够找到该文件并以读取模式打开它。