我试图用Python在读模式下打开一个文件。收到的错误表明我使用的是win文件名或读取模式。当我把文件路径输入我的计算机时,它就起作用了。我试图将输入文件名分配给一个变量,然后在读取模式下打开该变量。我还尝试输入完整路径,并在读取模式下打开路径。两人都给我一个错误。在
代码:
workingDirec = raw_input("What is the working directory?")
original_file = raw_input("The input filename is?")
def calculateZscore():
"Z score calc"
full_original = os.path.join(workingDirec,original_file)
print full_original
f = open ('C:\Users\tpmorris\ProgramingAndScripting\Trial 2 Data\Trial 2 Data\NCSIDS_ObsExp.txt','r')
print f
我的结果:
使用完整路径输出:
什么是工作目录?C: \Users\tpmorris\ProgramingAndScripting\Trial 2 Data\Trial 2数据
输入文件名是?NCSID_观测站.txt在
C:\Users\tpmorris\ProgramingAndScripting\Trial 2 Data\Trial 2 Data\NCSIDS_观测站.txt在
IOError:[Errno 22]无效的模式(“r”)或文件名:“C:\Users\tpmorris\ProgramingAndScripting\Trial 2 Data\Trial 2 Data\NCSIDS”_观测站.txt'
使用变量输出:
IOError:[Errno 2]没有这样的文件或目录:“full\u original”
首先,在Windows上,如果要使用Windows路径语法,就必须对反斜杠(双反斜杠)进行转义,原因是@James Mills answer指出的原因。在
另一个选择是使用正斜杠;Python将在操作系统路径. 在
您可以使用以下命令行路径输入:
或添加
如果你要使用硬编码路径。在
如果要打印文本文件的内容,还应对代码进行一些小的更改:
首先,应该使用with语句打开文件。这将确保文件对象的内置方法被调用,尤其是在打开文件后忘记关闭文件时。在
更多信息请参见Understanding Python's with statement。在
其次,如果要打印文本文件中的每一行,请不要尝试打印file对象。而是在线条中循环并打印出来。在
所以接受命令行输入的代码应该是:
我删除了函数的def,以便在文件读取代码的过程中执行其他操作。那个国防部长应该去别的地方。在
在Windows上,你的路径必须转义,因为Windows使用反斜杠来表示路径分隔符。在
反斜杠通常用作转义序列,在Python中也同样使用!所以你必须这样“逃离”他们:
参见:
相关问题 更多 >
编程相关推荐