gpt4 book ai didi

python - 自动检测文件扩展名

转载 作者:行者123 更新时间:2023-11-30 23:18:29 24 4
gpt4 key购买 nike

正如你所看到的,这非常非常笨拙。我将如何自动检测文件扩展名?

txt_files = glob('*txt')
png_files = glob('*.png')
jpg_files = glob('*.jpg')
zip_files = glob('*.zip')
gif_files = glob('*.gif')
iso_files = glob('*iso')
epub_files = glob('*epub')
ico_files = glob('*.ico')

#Unimportant bit to question

for n in txt_files:
move_files(n, 'txt')
for n in png_files:
move_files(n, 'png')
for n in jpg_files:
move_files(n, 'jpg')
for n in zip_files:
move_files(n, 'zip')
for n in gif_files:
move_files(n, 'gif')
for n in iso_files:
move_files(n, 'iso')
for n in epub_files:
move_files(n, 'epub')
for n in ico_files:
move_files(n, 'ico')

最佳答案

要“自动检测新扩展名”,只需浏览所有文件并查看其扩展名即可:

for f in os.listdir():
name, ext = os.path.splitext(f)
ext = ext.lstrip('.')
if ext:
os.mkdirs(ext)
move_file(filename, ext)

请注意,如果您的某些“扩展”实际上不是扩展,则此操作将不起作用。我注意到您现有的代码搜索诸如 *txt*iso 之类的内容,它们当然会匹配诸如 this_is_not_txtspam 之类的内容.aniso 等等。如果这是一个必需的功能而不是一个错误,那么您将必须为“扩展”的含义制定一些规则,然后才能在代码中实现它......

另请注意,根本没有扩展名的文件将保留在原处(因为 if ext:),而具有空扩展名的文件(仅 . ) 也会如此(因为 if 检查发生在 lstrip 之后)。当然,如果需要,您可以更改其中任何一个(尽管您需要提供一个子目录名称,该名称不可能与任何可能的实际扩展名混淆......)。

最后,这不会处理“双重扩展名” - 例如,.tar.gz 文件将进入与 .gz 相同的目录。同样,如果需要的话,这很容易更改。

关于python - 自动检测文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722354/

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