首页 > 解决方案 > 在 Python 中读取 .txt 文件

问题描述

我有一个包含如下数据的 txt 文件:

阿尔奥托加

艾尔鲍德温

阿尔巴伯

艾尔比布

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' 作为错误。我该如何纠正这个问题?该文件与我的 .py 文件位于同一个文件夹中,我之前读过这样的文件,所以我不明白现在出了什么问题。

标签: pythonfile-ioattributeerrorfile-not-found

解决方案


啊哈,你不需要filename.txt。而是做

filein = open(filename, 'r')

filename- 函数的变量输入已经是一个字符串对象,并且包含它的扩展名.txt。你不能.txt在字符串对象上做。如果您想将不带扩展名的文件名传递给函数,那么在稍后打开文件时,您需要执行以下操作:

filein = open(f'{filename}.txt', 'r')

推荐阅读