python - 在 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 文件位于同一个文件夹中,我之前读过这样的文件,所以我不明白现在出了什么问题。
解决方案
啊哈,你不需要filename.txt
。而是做
filein = open(filename, 'r')
filename
- 函数的变量输入已经是一个字符串对象,并且包含它的扩展名.txt
。你不能.txt
在字符串对象上做。如果您想将不带扩展名的文件名传递给函数,那么在稍后打开文件时,您需要执行以下操作:
filein = open(f'{filename}.txt', 'r')
推荐阅读
- html - 如何在不创建 N 的情况下在 CSS 动画中获得 N 点?
- python - 无法显示 .xml 文件的标签名称(返回 None )
- javascript - 简单的货币转换器
- typescript - Aurelia 2 全局窗口变量
- ruby-on-rails - Nokogiri 使用“渲染”解析(执行的)视图文件的替代方法
- php - 如何使用php分隔excel中带逗号的全名
- javascript - 使用 axios 访问谷歌图片搜索 API 时出现错误请求
- postgresql - 为什么设置“POSTGRES_HOST_AUTH_METHOD”不起作用?
- android - Activity 启动模式 singleInstance 在 Android 11 中工作异常
- python - 小波从头开始,但如何在 python 中反转它