失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python带命令行参数解析的文件遍历脚本(找出文件名长度大于某值的文件)

python带命令行参数解析的文件遍历脚本(找出文件名长度大于某值的文件)

时间:2024-06-09 06:02:26

相关推荐

python带命令行参数解析的文件遍历脚本(找出文件名长度大于某值的文件)

背景

复制一个目录时,提示有个文件名太长未能复制成功,然后忘记是哪个了,现在要靠脚本把它找出来。

代码

#!/usr/bin/pythonimport getoptimport osimport sysdef parse_args(argv):num = 0path = '.'try:'''Syntax: getopt.getopt(args, options, [long_options])Parameters:args: List of arguments to be passed.options: String of option letters that the script wants to recognize. Options that require an argument should be followed by a colon (:).long_options: List of the string with the name of long options. Options that require arguments should be followed by an equal sign (=). '''# h i o 为可选项,其中 i 和 o 后面需要跟参数opts, args = getopt.getopt(argv, "hn:p:")except getopt.GetoptError:print('使用方法: finder.py -n <文件名长度最小值> -p <路径,默认为当前目录>')sys.exit(2)for opt, arg in opts:if opt == '-h':print('使用方法: finder.py -n <文件名长度最小值> -p <路径,默认为当前目录>')sys.exit()elif opt == "-n":if not arg.isdigit():print('使用方法: finder.py -n <文件名长度最小值> -p <路径,默认为当前目录>')sys.exit()num = int(arg)elif opt == "-p":path = argreturn path, numdef extract_files(path='.', num=0):for p, dir_list, file_list in os.walk(path):for file in file_list:if len(file) >= num:print("长度: {}, 文件名: {}".format(len(file), os.path.join(p, file)))if __name__ == "__main__":path, num = parse_args(sys.argv[1:])extract_files(path, num)

使用方法

执行:

python finder.py -n <文件名长度最小值> -p <路径,默认为当前目录>'

运行样例:

python .\main.py -n 3 -p D:\test长度: 5, 文件名: D:\test\1.txt长度: 10, 文件名: D:\test\新建文件夹\新建文本文档.txt长度: 10, 文件名: D:\test\新建文件夹 - 副本\新建文本文档.txt长度: 10, 文件名: D:\test\新建文件夹 - 副本 (2)\新建文本文档.txt

如果觉得《python带命令行参数解析的文件遍历脚本(找出文件名长度大于某值的文件)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。