如何使用命令行参数删除文件和目录



我正在尝试使用下面的代码从目录中删除图像,但它不做我想要的

import os
import sys
count = 0
for arg in sys.argv:
    for (dirname, dirs, files) in os.walk(arg):
        for filename in files:
            if filename.endswith('.jpg'):
                count = count + 1
                thefile = os.path.join(dirname,filename)
                os.remove(thefile)
print('Files:', count)
print('Files removed')

它没有抛出任何错误,但仍未删除文件

尝试:

import os
import sys
count = 0
# Path for os.walk() is obtained via commandline parameter 1 
for dirname, dirs, files in os.walk(sys.argv[1]):
    for filename in files:
        if filename.lower().endswith('.jpg'):
            count += 1
            thefile = os.path.join(dirname, filename)
            os.remove(thefile)
print('Files:', count)
print('Files removed')

执行代码: -

-> ImageRemover.py "C:UserslolPictures"

用于执行脚本的一般语法= 'python_script_location' 'image_dir_location'第二个参数将是图像文件目录的位置。

更改: -

删除了冗余最外面的for循环,以提供image_diros.walk()的路径,从而使过程更有效。

要记住的事情: -

  1. 提供源目录的完整路径(被认为是一个很好的度量(
  2. 确保文件扩展名是正确的,也是您想要的。前任。如果您的映像文件是.png扩展名,则将if filename.lower().endswith('.jpg')更改为if filename.lower().endswith('.png')
  3. 确保您正在使用命令行执行脚本,否则脚本将执行,但始终显示此输出: -

    文件:0

    文件已删除

最新更新