gpt4 book ai didi

python - 将排序结果写入文件

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:58 25 4
gpt4 key购买 nike

我有一个简单的函数来对字典进行排序:

data = inputfile.readlines()
lineData = sorted(data, key=len, reverse=True)[:3]

打印输出:

print sorted(data, key=len, reverse=True)[:3]

生成预期结果,但是写入文件:

outputfile.writelines sorted(data, key=len, reverse=True)[:3]

什么也不产生。如何将输出写入文本文件(outputfile)?完整代码如下:

import sys, string
inputfilenames, outputfilename = sys.argv[1:-1], sys.argv[-1]


def do_something_with_input(inputfile):
data = inputfile.readlines()
print sorted(data, key=len, reverse=True)[:3]
print sys.path[0]+"/"+ outputfilename


def write_results(outputfile):
data = inputfile.readlines()
outputfile.writelines(sorted(data, key=len, reverse=True)[:3])

for inputfilename in inputfilenames:
inputfile = open(inputfilename, "r")
do_something_with_input(inputfile)
outputfile = open(outputfilename, "w")
write_results(outputfile)

最佳答案

writelines是一个方法,你需要调用它:

outputfile.writelines(sorted(data, key=len, reverse=True)[:3])

预计到达时间
函数open提供可以迭代一次的文件句柄。您在 do_something_with_input 函数中执行此操作,在迭代 inputfile 后,迭代器耗尽。这意味着任何进一步的迭代(例如在 write_results 函数中完成的迭代)都会产生一个空序列。这就是为什么没有将任何内容写入输出文件的原因。基本上,它相当于:

>>> a = (i for i in range(2))
>>> list(a)
[0, 1]
>>> list(a)
[]

您需要做的是存储 sorted(...) 的输出,然后将其写入文件,而不是尝试再次生成它。

关于python - 将排序结果写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com