我正在尝试编写一个代码,该代码在文本文件中包含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)
然后我会将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'
感谢您的帮助。
答案 0 :(得分:3)
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'
两件事:
r''
表单来防止解释转义序列。例如,'C:\\Program Files\\...'
或r'C:\Program Files\...'
。\\Startmenu\\
。看起来“开始”和“菜单”之间缺少一个空格,尽管开放线似乎有正确的路径。 注意:您路径中的\topheavy.txt
可能也会转换为<tab>opheavy.txt
。这就是为什么在追溯中它前面没有两个反斜杠。
答案 1 :(得分:0)
以“r”(读取)而不是“w”(写入)
打开这两行中的startmenu是不同的?尝试使用向前而不是反斜杠。 Python会将正斜杠转换为运行它的操作系统的适当分隔符
打开('C:\ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Python 3.4 \ topheavy.txt','w')
OSError:[Errno 22]参数无效:'C:\ ProgramData \ Microsoft \ Windows \ Startmenu \ Programs \ Python 3.4 \ topheavy.txt'
答案 2 :(得分:0)
将每个\
替换为文件路径中的\\
答案 3 :(得分:0)
您正在使用&#34; \&#34;分隔符可能会在某处转移(例如,接近结尾。这是Windows路径分隔符,但也用作字符串转义。
你可以将&#34; \&#34;加倍as&#34; \&#34;。但最简单的方法是在开头添加一个r来忽略。
r"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python 3.4\topheavy.txt"
略过建议使用/代替,你不是在Unix上,并且没有理由Python不能适应Windows,只要你记得要注意&#34; \&#34;也是一种逃避。使用r&#39;在开始时还允许您将字符串复制/粘贴到另一个程序中,反之亦然。
另外,在c:\ temp或类似情况下进行测试也不会有什么问题,以避免出现错误输入路径的问题。
最后,但并非最不重要的,你需要打开&#34; r&#34;阅读模式,如前所述。
答案 4 :(得分:0)
您应该在路径的最后一个“/”中再添加一个“/”,例如:
open('C:\Python34\book.csv') to open('C:\Python34\\\book.csv')
答案 5 :(得分:0)
当尝试在Python 3.5.4中读取大文件时,出现了相同的错误。为了解决它,我没有用.read()
将整个文件读入内存,而是逐行读取了每一行:
with open('big.txt') as f:
for i in f:
print(i)
答案 6 :(得分:0)
我的问题相当随意,是我正在使用 open(filename, "w").write(...)
编写文件,其中 filename
是无效的路径名或包含意外的斜杠。
例如,将 datetime.datetime.today()
转换为带有斜杠或冒号的日期字符串 (Windows) 并写入不存在的目录将导致此错误。
变化:
open("../backup/2021/08/03 15:02:61.json", "w").write(data)
致:
open("../backup/2021-08-03 15-02-61.json", "w").write(backup)
举个例子。
答案 7 :(得分:-1)
正如Python文档中所写,发生IOError异常:
当I / O操作(例如print语句,内置的)时引发 对于与I / O相关的问题,open()函数或文件对象的方法失败 原因,例如“找不到文件”或“磁盘已满”。