def sortall(string):
if not string:
return []
return (sortall([x for x in string[1:] if x < string[0]])
+ [string[0]] +
sortall([x for x in string[1:] if x >= string[0]]))
file = open("sorting.txt", "r+")
for line in file.readline():
xd = (''.join(sortall(line)))
file2 = open("sorting.txt", "w")
file2.write(xd)
我如何使我的代码打印出排序的文件行,但是当这样做时,它会按升序进行打印。
答案 0 :(得分:0)
读取整个文件,排序并写入新文件:
with open('file1', 'r') as f:
lst = f.readlines()
with open('file2', 'w') as w:
w.writelines(sorted(lst))
如果“已排序”应使用一些特殊的排序,请在“键”参数中提供比较功能:
print(help(sorted))
已排序(可重复,/,*,键=无,反向=错误)
返回一个新列表,其中包含迭代中所有项目的升序。可以提供自定义键功能来自定义排序顺序,然后 可以设置反向标志以按降序请求结果。
答案 1 :(得分:0)
这是一种更简洁的方法:
with open('sorting.txt', 'r+') as f:
sorted_lines = sorted(f.readlines())
f.writelines(sorted_lines)
如您在此处看到的:https://docs.python.org/3/howto/sorting.html,您可以提供可调用项以自定义顺序。
已排序(可重复,/,*,键=无,反向=错误)
返回一个新列表,其中包含迭代中所有项目的升序。可以提供自定义键功能来自定义排序顺序,然后 可以设置反向标志以按降序请求结果。