使用Python在read mod中打开文件

2024-05-15 00:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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”


Tags: 文件路径txtinputdata文件名模式users
2条回答

首先,在Windows上,如果要使用Windows路径语法,就必须对反斜杠(双反斜杠)进行转义,原因是@James Mills answer指出的原因。在

另一个选择是使用正斜杠;Python将在操作系统路径. 在

您可以使用以下命令行路径输入:

C:/Users/tpmorris/ProgramingAndScripting/Trial 2 Data/Trial 2 Data

或添加

/NCSIDS_ObsExp.txt

如果你要使用硬编码路径。在

如果要打印文本文件的内容,还应对代码进行一些小的更改:

首先,应该使用with语句打开文件。这将确保文件对象的内置方法被调用,尤其是在打开文件后忘记关闭文件时。在

更多信息请参见Understanding Python's with statement。在

其次,如果要打印文本文件中的每一行,请不要尝试打印file对象。而是在线条中循环并打印出来。在

所以接受命令行输入的代码应该是:

    import os

    workingDirec = raw_input("What is the working directory?")
    original_file = raw_input("The input filename is?")


    full_original = os.path.join(workingDirec,original_file)
    print full_original


    with open(full_original,'r') as f:
        for line in f:
            print line
    f.close()

我删除了函数的def,以便在文件读取代码的过程中执行其他操作。那个国防部长应该去别的地方。在

在Windows上,你的路径必须转义,因为Windows使用反斜杠来表示路径分隔符。在

反斜杠通常用作转义序列,在Python中也同样使用!所以你必须这样“逃离”他们:

f = open ('C:\\Users\\tpmorris\\ProgramingAndScripting\\Trial 2 Data\\Trial 2 Data\\NCSIDS_ObsExp.txt','r')

参见:

相关问题 更多 >

    热门问题