【发布时间】:2018-10-09 13:14:49
【问题描述】:
我正在编写这个简单的代码:
file = input('File to read: ')
fhand = open(file, 'r')
我要打开的文件名为“test.txt”,它位于子文件夹中;因此,我在请求的输入中输入的是:'DB\test.txt'。
好吧:它不起作用,返回此错误消息:
OSError: [Errno 22]Invalid argument: 'DB\test.txt'.
我在同一目录中有另一个文件,名为“my_file.txt”,我在尝试打开它时没有遇到错误。最后我有另一个文件,叫做“new_file.txt”,这个文件也给我同样的错误。
对我来说显而易见的是 open() 函数读取“\t”和“\n”就好像它们是特殊字符一样;在网上搜索我发现没有什么能真正帮助我避免用户输入字符串中的特殊字符...... 有人可以帮忙吗?
谢谢!
【问题讨论】:
-
\t是制表,使用原始前缀。你在使用 python 2 吗?你在回答提示时输入了什么? -
奇怪,通过
input输入的文本不应该将反斜杠解析为转义字符。或者,等等,您使用的是 Python 2.7 吗?由于 2.7 的input在您的文本上调用eval,这可能会导致转义。如果您使用的是 Python 2.7,请考虑改用raw_input。