在python中打开.txt文件时,有时会发生OSError

时间:2018-11-20 23:06:54

标签: python

我正在尝试制作一个程序,该程序使用.txt文件中的单词,然后创建一个仅包含超过5个字母的单词的新.txt文件。为此,我有两次with open命令。这是我到目前为止的代码。

iteration=0
while iteration < 101:
    with open(r"‪C:\Users\user\Documents\filename.txt", "r") as file1:
       inputwords=file1.readlines()[1]
    wordtest=list(inputwords)
    wordstr=''.join(wordtest)
words=len(wordtest)
    if words>=5:
        print(wordstr + " is longer then 5 letters")
        with open(r"C:\Users\user\Desktop\newfile.txt", "a") as file:
            file.write("\n" +wordstr)
    iteration+=1

运行时,它会给我一个 OSError ,但是当我删除第一个with open时,它并没有给我一个OSError,并且工作正常。我正在使用Windows 10,错误消息是: OSError:[Errno 22]无效的参数:'\ u202aC:\ Users \ user \ Documents \ filename.txt' 另外,我尝试使用双反斜杠,并且得到相同的错误。这在其他脚本中也发生过,在某些情况下,每隔几次我尝试打开该脚本即可正常运行,而在其他情况下,它返回了 OSError

1 个答案:

答案 0 :(得分:0)

您传入的文件路径可能是问题所在。

根据您的代码,您将路径传递为

with open(r"‪C:\Users\\Documents\filename.txt", "r") as file1:

如果您将原始字符串作为路径传递,则只需在语句中提供如下所示的路径即可,而不要使用双反斜杠。

with open(r"‪C:\Users\Documents\filename.txt", "r") as file1:

或者您可以简单地使用单斜杠

c:/users/path

或双反斜杠(给出两次,以避免反斜杠作为转义序列的特殊含义)

c:\\users\\path