在Python中读取.txt文件

问题描述 投票:0回答:1

我有一个txt文件,里面有这样的数据。

AL Autauga

AL Baldwin

AL Barbour

AL Bibb

def stateToCounties(filename):

    """
    :param filename: text containing state name, tab, county name, enter button...
    :return: { state name : [list of counties in that state] }
    """

    filein = open(filename.txt, 'r')
    lines = filein.readlines()
    rawdata = []
    states = {}

    for line in lines:
        line = line.strip('\n').split('\t')
        rawdata += [line]

    filein.close()

    for part in rawdata:
        if part[0] not in states.keys():
            states[part[0]] = [part[1]]
        else:
            states[part[0]] += [part[1]]
    return states


print(stateToCounties('uscounties.txt'))

我应该得到类似{'AL': [Autauga...]}作为我的输出,但却得到了一个错误。AttributeError: 'str' object has no attribute 'txt'. 如果我使用这一行 filein = open('filename.txt', 'r') 相对于 filein = open(filename.txt, 'r') 然后我得到FileNotFoundError: [Errno 2] No such file or directory: 'filename.txt' as an error. 我怎样才能纠正这个错误?这个文件和我的.py文件在同一个文件夹里,我以前也读过这样的文件,所以我不明白现在出了什么问题。

python file-io attributeerror file-not-found
1个回答
2
投票

啊哈,你不需要 filename.txt倒不如说

filein = open(filename, 'r')

filename - 函数的输入变量已经是一个字符串对象,并且它包含了它的扩展名。.txt. 你不能这样做 .txt 在一个字符串对象上。如果你想把没有扩展名的文件名传给函数,那么在以后打开文件的时候,你需要做的是.NET技术。

filein = open(f'{filename}.txt', 'r')
© www.soinside.com 2019 - 2024. All rights reserved.