我是编程新手,目前我正在尝试根据每个文件的内容在目录中整理“ .text”文件。
文件的内容中将包含随机数,例如'a.text' = 5
和'b.text' = 3
。我希望使用Python根据目录内容的值升序对目录中的文件进行排序。
我尝试查看sorted()
和sort()
,但发现的大部分只是对文件中的值进行排序。谢谢您的提前帮助。
答案 0 :(得分:2)
您需要定义一个可用作key
/ sort
的{{1}}的函数。
我们在这里打开它,阅读内容并将其转换为sorted
。假定每个文件中只有一个数字(没有其他内容),并且可以将其转换为float
。对于每个输入记录,该键函数都只调用一次(因此不会读取不必要的文件)。
float
有两个这样的文件:
def get_content(file_name):
with open(file_name) as f:
return float(f.read())
files = ["a.txt", "b.txt"]
sorted(files, key=get_content)
# ['b.txt', 'a.txt']
答案 1 :(得分:1)
以@Graipher的答案为基础,但使用pythons pathlib
模块:
from pathlib import Path
files = ["a.txt", "b.txt"]
sorted(files, key=lambda f: float(Path(f).read_text()))
# ['b.txt', 'a.txt']