我需要编写一个程序来提示用户输入任何文件名,逐行加载数据,删除所有重复的行,按字母顺序对行进行排序,并将其余行写入另一个文件。
我已经完成了大部分代码,但是我正在努力按字母顺序对行进行排序。有什么建议吗?
预先感谢您的帮助!
def deleteDuplicateRecords(fileName):
try:
newFileName="filtered_"+fileName
with open(fileName,'r') as readFile, open(newFileName,'w') as writeFile:
lineSet = set()
for line in readFile:
if line not in lineSet:
lineSet.add(line)
writeFile.write(line)
readFile.close()
writeFile.close()
print(f"Duplicate rows removed succesfully. Open the new file '{newFileName}'")
except FileNotFoundError:
print("File Not Found")
name = input("Enter the name of the text file including the proper extension (.txt, .csv, etc): ")
print()
deleteDuplicateRecords(name)
这应该工作:
def deleteDuplicateRecords(fileName):
try:
newFileName="filtered_"+fileName
with open(fileName,'r') as readFile, open(newFileName,'w') as writeFile:
for sorted_line in sorted({line for line in readFile}):
writeFile.write(sorted_line)
print(f"Duplicate rows removed successfully. Open the new file '{newFileName}'")
except FileNotFoundError:
print("File Not Found")
一些注意事项:
with
,则在范围结束时将自动关闭文件。sorted
函数对结果进行排序{line for line in readFile}
使用set comprehension以更简洁的方式根据文件的行创建一个set。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句