如你所见,这是非常非常笨重。如何自动检测文件扩展名?你知道吗
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')
要“自动检测新扩展名”,只需浏览所有文件并查看其扩展名:
请注意,如果您的一些“扩展”实际上不是扩展,那么这将不起作用。我注意到您现有的代码搜索像
*txt
和*iso
这样的东西,这当然会匹配像this_is_not_txt
和spam.aniso
这样的东西。如果这是一个必需的特性而不是一个bug,那么在代码中实现它之前,您必须为您所说的“扩展”想出一些规则还请注意,完全没有扩展名的文件将保留在原来的位置(因为
if ext:
),而扩展名为空的文件(只有.
)也将保留在原来的位置(因为if
检查发生在lstrip
之后)。当然,如果需要的话,您可以更改其中的任何一个(尽管您需要提供一个子目录名,这个子目录名不能与任何可能的实际扩展名含糊不清……)。你知道吗最后,这不会处理“双扩展名”—例如,
.tar.gz
文件将进入与.gz
相同的目录。同样,如果需要,这很容易改变。你知道吗也许吧?你的问题不太清楚
在某种意义上,这是“自动检测”的,因为如果没有符合模式的文件,它将跳过
move_files
步骤相关问题 更多 >
编程相关推荐