我有一个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文件在同一个文件夹里,我以前也读过这样的文件,所以我不明白现在出了什么问题。
啊哈,你不需要 filename.txt
倒不如说
filein = open(filename, 'r')
filename
- 函数的输入变量已经是一个字符串对象,并且它包含了它的扩展名。.txt
. 你不能这样做 .txt
在一个字符串对象上。如果你想把没有扩展名的文件名传给函数,那么在以后打开文件的时候,你需要做的是.NET技术。
filein = open(f'{filename}.txt', 'r')