我是一个初学者,尝试打开一个文件作为函数的一部分,其中文件名/路径是函数中的变量。我写了一个,但是在类似的函数上出现了一个错误。下面是函数代码:
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 33\Doc\theboard1.txt’
路径是正确的(三次检查),我正在使用这个例子来测试文件读取。
发布于 2014-04-27 02:10:56
您需要使用双反斜杠--转义反斜杠--如下所示将有效:
read_board('C:\\Python33\\Doc\\theboard1.txt')这样,python就可以将第二个\作为一个文字来处理,而不是像在您的情况下那样,将其用作后面字符的转义字符。
发布于 2014-04-28 04:18:31
我通常建议使用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(“愚蠢”,“junk.txt”)不同吗?这是confusion for a while吗?
发布于 2014-04-27 03:34:31
你可以使用:
os.sep
在类似的文件之间
(“C:”+os.sep+“用户”)
导入os模块后
https://stackoverflow.com/questions/23318589
复制相似问题