Python 将文本文件转换为列表
我想解析文本文件的每一行,每一行看起来都类似于:Python 将文本文件转换为列表,python,list,Python,List,我想解析文本文件的每一行,每一行看起来都类似于: New Mexico,Santa Fe Alabama,Montgomery 我想分析每一行,这样我就可以得出以下结论: states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas'] cities = ['Montgomery', 'Juneau', 'Phoenix', 'Little Rock'] 文本文件的内容已存储在函数中:f.read(),定义如下: #module imports im
New Mexico,Santa Fe
Alabama,Montgomery
我想分析每一行,这样我就可以得出以下结论:
states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas']
cities = ['Montgomery', 'Juneau', 'Phoenix', 'Little Rock']
文本文件的内容已存储在函数中:f.read()
,定义如下:
#module imports
import sys
import random
fname = sys.argv[1]
with open(fname, 'r') as f:
print(f.read())
这有用吗
>>> with open('file') as f:
... text = [i.strip() for i in f]
...
...
>>> text
['New Mexico,Santa Fe', 'Alabama,Montgomery']
>>> states = []
>>> cities = []
>>> for i in text:
... states.append(i.split(',')[0])
... cities.append(i.split(',')[1])
...
...
>>> states
['New Mexico', 'Alabama']
>>> cities
['Santa Fe', 'Montgomery']
>>>
您可以这样做:
首先把它转换成字典。然后一个列表是字典的
键
,另一个列表是字典的值
在使用之前,也不要忘记检查sys.argv
长度
import sys
if len(sys.argv) < 2:
print('must provide filename')
exit()
with open(sys.argv[1], 'r') as f:
d = dict(reversed(line.strip().split(',')) for line in f)
cities = list(d.keys())
states = list(d.values())
print('cities = %r' % cities)
print('states = %r' % states)
导入系统
如果len(系统argv)<2:
打印('必须提供文件名')
退出()
将open(sys.argv[1],'r')作为f:
d=dict(对于f中的行,反转(line.strip().split(','))
城市=列表(d.keys())
状态=列表(d.值())
打印('cities=%r'%cities)
打印('states=%r'%states)
我添加了
反向
,因为城市名称作为键,州名称作为值更有意义。你能显示你的代码吗?请指出哪些方面给你带来了困难。另外,你的主题线有点混乱。您说dictionary(意思是pythondict
?),但显示两个列表。给我们一些代码,然后我们可以继续。代码做什么@IDJAW这个网站是为有特定编码问题的人而设的。您需要打开文件,读取行并将它们拆分为列表。这就是我们需要看到的代码。我将文件名作为参数传入。这是打印所有行的代码:#module imports sys import random fname=sys.argv[1],open(fname,'r')为f:print(f.read())
只需执行一次拆分
即可对代码进行小的优化。
import sys
if len(sys.argv) < 2:
print('must provide filename')
exit()
with open(sys.argv[1], 'r') as f:
d = dict(reversed(line.strip().split(',')) for line in f)
cities = list(d.keys())
states = list(d.values())
print('cities = %r' % cities)
print('states = %r' % states)