在之前的文章中提到,如果使用集合的方法将txt文本文档的重复行内容去除,则会导致每行的顺序被打乱,如果我们想要每行内容按头的ASCII码值排列,则可根据如下代码:
filename = "待排序文档.txt"
def sort_file_by_letters(filename):
with open(filename, 'r', encoding='utf-8') as file:
lines = file.readlines()
lines.sort(key=lambda x: x.strip())
with open(filename, 'w', encoding='utf-8') as file:
file.writelines(lines)
sort_file_by_letters(filename)
这样就会按照首字母的ASCII码值先后顺序进行排列,如果是汉字,可以根据拼音进行排序,代码如下:
import pinyin
def sort_file_by_pinyin(filename):
with open(filename, 'r') as file:
lines = file.readlines()
lines.sort(key=lambda x: pinyin.get(x[0], format="strip", delimiter=""))
with open(filename, 'w') as file:
file.writelines(lines)
sort_file_by_pinyin(filename)
这样的排序或许不是你心中想要的排序,但是会按照一定规律排序,不会显得太乱。