我是一个初学者,试图打开一个文件作为函数的一部分,其中文件名/路径是函数中的变量。我已经写了一个但是在类似的功能上出错了。这是功能代码:
def read_board(board_file):
""" (file path) -> list of str
Return a board read from open file board_file.
>>>read_board('C:\Python33\Doc\theboard1.txt')
"""
bo_file = open(board_file, 'r')
lines = bo_file.readlines()
return lines
我收到此错误
OSError:[Errno 22]参数无效:' C:\ Python33 \ Doc \ theboard1.txt'
路径正确(三重检查),我使用该示例测试文件读取。
答案 0 :(得分:2)
你需要使用双反斜杠来逃避反斜杠,以下内容将起作用:
read_board('C:\\Python33\\Doc\\theboard1.txt')
这样,python会将第二个\
视为文字,并且不会将其用作后面的字符的转义字符在你的情况下。
答案 1 :(得分:2)
我通常建议使用os.path.join
,但由于Windows路径无论如何都会受到大脑损坏,这对你的帮助不大.¹
正确使用的一种方法是使用不解释反斜杠的原始Python字符串:
open(r'c:\stupid\junk.txt')
或者只是假装DOS是一个糟糕的梦想并使用像上帝那样的正斜杠:
open('c:/stupid/junk.txt')
¹为读者行动:os.path.join('c:', 'junk.dat')
返回什么?它的行为是否不同于`os.path.join('stupid','junk.txt')?这是confusion for a while吗?
答案 2 :(得分:0)
你可以使用::
os.sep
文件之间
(" C:&#34 + + os.sep"用户&#34)
导入os模块后