Afghanistan
Albania
Algeria
etc
我有一个国家列表,如上所述,从txt文件复制。我想创建一个名为countries
的列表,其中包含所有这些条目,而不必逐个列表将报表中的每个条目包装起来并添加逗号。
如何以高效快捷的方式完成这项工作?
最终列表应如下所示:
countries = [
"Afghanistan",
"Albanian",
"Algeria"....
]
有些线条有2个以上的单独字符串,例如Puerto Rico
。 splitlines()似乎将两个单词分开,而不是为每一行创建一个列表条目。
答案 0 :(得分:2)
引号和逗号用于代码中指定为 literals 的列表和字符串。您不需要以编程方式阅读的数据。
只需读取线条并剥离拖尾换行符。
with open('countries.text') as src:
countries = [row.strip('\n') for row in src]
答案 1 :(得分:1)
你不需要为每个条目添加引号和逗号,只需用三引号括起来然后拆分它。
text = \
'''
Afghanistan
Albania
Algeria
'''
my_list = []
for line in text.strip().split('\n'):
my_list.append(line)
print my_list
['Afghanistan', 'Albania', 'Algeria']
或紧凑版:
my_list = \
'''
Afghanistan
Albania
Algeria
'''.split()
答案 2 :(得分:0)
假设您的输入为test.txt
,并且您希望在out.txt
中输出:
if __name__ == '__main__':
with open('test.txt', 'rb') as fr:
reader = fr.readlines()
with open('out.txt', 'wb') as fw:
for line in reader:
fw.write('\''+line.strip('\n').strip('\r')+'\'\n')
这将写入out.txt
:
'Afghanistan'
'Albania'
'Algeria'
'etc'
或者如果你想把它放在一个列表中:
if __name__ == '__main__':
with open('test.txt', 'rb') as fr:
reader = fr.readlines()
res = list()
for line in reader:
res.append(line.strip('\n').strip('\r'))
最后,我们有
res = ['Afghanistan', 'Albania', 'Algeria', 'etc']