我有一个 csv 文件,其中包含一些名称,这些名称写在一行中,用逗号分隔,但没有空格。 “maho、baba、fika、antst、koka、root”。我想做的就是按字母顺序对这些名称进行排序并将它们写入一个新的文本文件,这样结果就变成这样:
安斯特
爸爸
菲卡
等等
这是我的尝试,但没有成功..
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')
最佳答案
您正在尝试对名称
进行排序,其中仅包含一个字符串:整个逗号分隔文本 block 。您需要的是一种将其分成单个名称的列表
的方法,这可以使用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')
关于python - 对文本文件中的名称进行排序,将结果写入另一个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55548052/