我目前正在尝试编写一个简单的python脚本,该脚本使用我在文本文件上写下的文件路径打开一个文件夹或文件夹列表。
import os
with open('filepaths.txt') as f:
[os.startfile(line) for line in f.readlines()]
我的问题是,每当我运行这段代码时,python都会以非原始形式读取这些行;\n〃;在每个字符串中。
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'D:\Nitro\Downloadsn'
我已经尝试在变量上使用repr((来解决这个问题。它没有删除反斜杠,而是进一步加倍。
import os
with open('filepaths.txt') as f:
[os.startfile(repr(line)) for line in f.readlines()]
FileNotFoundError: [WinError 2] The system cannot find the file specified: "'D:\\Nitro\\Downloads\n'"
我还试图使用字符串替换函数来替换"字符串"\"用"&";。它不起作用。
readlines
方法正确读取文件,并保留每行中的换行符。在将换行符用作路径名之前,您只需要从字符串中去掉换行符,这通常是使用str.rstrip
方法完成的:
for line in f: # no need to use the readlines method for iteration
os.startfile(line.rstrip())
问题中包含的错误消息中的路径名称包含双反斜杠,因为它是用repr
函数显示的,反斜杠已经转义,而不是因为路径名称读取错误。