python - 对文本文件中的名称进行排序,将结果写入另一个文本文件

标签 python list sorting names

我有一个 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/

相关文章:

python 类属性

c - 在链表的前面插入一个节点

ios - 如何将数组排序到字典中?

python - 尽管不保留原始顺序,为什么 python 的排序称为稳定?

python - Django - 单击提交按钮时显示图像

python - 从 sys.stdin 获取输入,非阻塞

list - 针对元组列表迭代现有 map

python - 按 Pandas 中的第二个项目对元组系列进行排序

python - 导入单词的 txt 文件并在单独的行中打印单词

java - 是否可以使用 hibernate 注释持久化 List<E> ,其中 E 是一个接口(interface)?