所以我使用这些代码行来读取Excel文件。
fin=open("C:\Users\Student\Desktop\Python Coding\bodyfat.csv",'rU')
fin.readline()
但是我一直收到这个错误声明,我不知道发生了什么
>>> fin=open("C:\Users\Student\Desktop\Python Coding\bodyfat.csv",'rU')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 22] invalid mode ('rU') or filename: 'C:\\Users\\Student\\Desktop\\Python Coding\x08odyfat.csv'
>>> fin.readline()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'fin' is not defined
对这里发生的事情有任何想法吗?
答案 0 :(得分:2)
您没有正确转义字符串反斜杠。请注意在回溯中它写着“Coding \ x08odyfa”。您可以使用原始字符串
r"C:\Users\Student\Desktop\Python Coding\bodyfat.csv"
或转义转义字符
"C:\\Users\\Student\\Desktop\\Python Coding\\bodyfat.csv"
答案 1 :(得分:2)
发生第一个错误是因为在标准Python字符串中,反斜杠对跟随它们的字符做了有趣的事情(详见the documentation on string literals):
>>> "C:\Users\Student\Desktop\Python Coding\bodyfat.csv"
'C:\\Users\\Student\\Desktop\\Python Coding\x08odyfat.csv'
# ^ what?
发生第二个错误,因为在发生第一个错误后,永远不会分配fin
。
最简单的解决方法是使用前缀为r
的“原始字符串”来表示反斜杠应被视为普通字符:
>>> r"C:\Users\Student\Desktop\Python Coding\bodyfat.csv"
'C:\\Users\\Student\\Desktop\\Python Coding\\bodyfat.csv'
(不要担心加倍,这只是Python指示那些是字面反斜杠的方式,而不是转义后面的字符。)
此外,您应该使用with
“上下文管理器”进行文件处理:
with open(r"...") as fin:
line = fin.readline()
...