python - 对文本文件中的名称进行排序,将结果写入另一个文本文件
问题描述
我有一个 csv 文件,其中包含一些名称,这些名称写在一行中,用逗号分隔,但没有空格。“maho,baba,fika,anst,koka,root”。我想做的是按字母顺序对这些名称进行排序并将它们写入一个新的文本文件,这样结果就变成了这样:
anst
baba
fika
等。
这是我的尝试,但没有奏效..
names = list()
filename = 'users.csv'
with open (filename) as fin:
for line in fin:
names.append(line.strip())
names.sort()
print(names)
filename = 'names_sorted1.txt'
with open (filename, 'w') as fout:
for name in names:
fout.write(name + '\n')
解决方案
您正在尝试排序names
,它只包含一个字符串:整个逗号分隔的文本块。您需要的是一种将其分隔list
为单个名称的方法,可以使用以下split
方法完成:
in_filename = 'users.csv'
with open(in_filename ) as fin:
names = sorted(fin.read().strip().split(','))
然后,我们可以使用该join
方法再次将 组合list
成一个长字符串,其中 中的每个元素与下一个元素由list
分隔'\n'
:
out_filename = 'names_sorted1.txt'
with open(out_filename , 'w') as fout:
fout.write('\n'.join(names) + '\n')
推荐阅读
- reactjs - 在商店中保存用户会损害我的应用程序的安全性?
- jquery - 2个基于滚动方向的不同动画
- ajax - Ajax 每次都不能正确更新
- google-analytics - 搜索控制台显示我的网站信息,但谷歌分析不显示。我应该怎么办?
- rust - 返回对现有向量元素或新插入元素的引用
- ld - .data 部分之前无法解释的空内存地址
- image - 在 xlsx 中添加 PNG 的异常 - Apache POI 3.9
- mysql - 如何将我的 Amazon RDS MySql 数据库移动到 Heroku
- css - 如何仅以角度为输入文本组件的文本设置背景颜色
- c# - 此平台不支持 SqlClient