'无效参数'错误和python无法读取文件

Saw*_*yer 5 python file

我正在尝试编写在文本文件中使用2个数字然后将它们相除的代码,将答案显示为最重要的部分。当我在程序中输入自己的值时,小数部分已开始工作,但我无法使程序识别文本文件。我试过将它们放在同一目录中,并放置文件的完整系统路径,但到目前为止没有任何效果。现在,我只是想获取要打印的文件的内容。

with open('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.4\topheavy.txt','w') as f:
    for line in f:
        for word in line.split():
            print(word)      
Run Code Online (Sandbox Code Playgroud)

然后,我将2个值分配给x和y,但出现此错误:

Traceback (most recent call last):
File "C:\Python34\divider.py", line 2, in <module>
open('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.4\topheavy.txt','w')
OSError: [Errno 22] Invalid argument:'C:\\ProgramData\\Microsoft\\Windows\\Startmenu\\Programs\\Python 3.4\topheavy.txt'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

Joh*_*ter 5

open('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.4\topheavy.txt','w')
OSError: [Errno 22] Invalid argument:'C:\\ProgramData\\Microsoft\\Windows\\Startmenu\\Programs\\Python 3.4\topheavy.txt'
Run Code Online (Sandbox Code Playgroud)

两件事情:

  1. 处理包含反斜杠的路径时,您要么需要使用两个反斜杠,要么使用r''表格来防止转义序列的解释。例如,'C:\\Program Files\\...'r'C:\Program Files\...'
  2. 您的错误显示:\\Startmenu\\。尽管空行似乎有正确的路径,但“开始”和“菜单”之间似乎缺少一个空格。

注:\topheavy.txt在你的路径可能是越来越转化为<tab>opheavy.txt过。这就是为什么在回溯中它前面没有两个反斜杠的原因。


Vin*_*man 0

正如 Python 文档中所写,出现 IOError 异常:

\n\n
\n

当 I/O 操作(例如打印语句、内置 open() 函数或文件对象的方法)因 I/O 相关原因失败时引发,例如 \xe2\x80 \x9c 文件未找到\xe2\x80\x9d 或\xe2\x80\x9c 磁盘已满\xe2\x80\x9d。

\n
\n