python 选择名称最短的文件

daupos2t  于 2022-12-25  发布在  Python
关注(0)|答案(4)|浏览(115)

我想在文件夹中找到名称最短的.txt文件。

import glob
import os

inpDir = "C:/Users/ft/Desktop/Folder"

os.chdir(inpDir)

for file in glob.glob("*.txt"):
    l = len(file)

现在我找到了名字的字符串长度,我怎样才能返回最短的名字呢?谢谢

zpf6vheq

zpf6vheq1#

要查找最短的文件,只需与当前最短的文件进行比较:

chosen_file = ""

for file in glob.glob("*.txt"):
    if chosen_file == "" or len(file) < len(chosen_file):
        chosen_file = file

print(f"{chosen_file} is the shortest file")

一旦完成循环,chosen_file str就一定是最短的。

mfuanj7w

mfuanj7w2#

将其放入函数中并调用它:

import glob
import os

def shortest_file_name(inpDir: str, extension: str) -> str:
    os.chdir(inpDir)
    shortest, l = '', 0b100000000
    for file in glob.glob(extension):
        if len(file) < l:
            l = len(file)
            shortest = file
    return shortest

inpDir = "C:/Users/ft/Desktop/Folder"
min_file_name = shortest_file_name(inpDir, "*.txt")
8yparm6h

8yparm6h3#

只需使用glob模块获取文件列表,然后利用min(..., key=...)查找最短的字符串(请参见help(min)):

min(glob.glob('*.txt'), key=len)
iqxoj9l9

iqxoj9l94#

min = 1000

for file in glob.glob("*.txt"):
    if len(file) < min:
        min = len(file)
        name = file

相关问题