保存文件名至txt文件中,不含后缀

时间:2021-12-28 07:55:48

准备深度学习的训练数据时,可能会用到将图片文件名保存到txt文件中,所以用python实现了该功能。输入参数只设了两个,图片存放路径,和输出的txt文件名。

代码里写死了只识别.jpg格式,并不进行目录递归,有需要可以进行修改。

使用示例:
python files2txt.py --dir dirname --outfile txtname

#files2txt.py

import os,sys
import argparse def parse_args():
"""
Parse input arguments
"""
parser = argparse.ArgumentParser(description='put files name into txt')
parser.add_argument('--dir', dest='directory', help='dir contains files',
default=None, type=str)
parser.add_argument('--outfile', dest='outfile', help='file to store names',
default="img_name.txt", type=str) if len(sys.argv) == 1:
parser.print_help()
sys.exit(1) args = parser.parse_args()
return args def ListFilesToTxt(dir,file,type,recursion):
files = os.listdir(dir)
for name in files:
print(name)
fullname=os.path.join(dir,name)
if os.path.isdir(fullname):
       if recursion:
   ListFilesToTxt(fullname,file,type,recursion)
else:
filename,ext = os.path.splitext(name)
if(ext == type):
file.write(filename + "\n") return if __name__ == '__main__':
args = parse_args() if args.directory is not None:
file = open(args.outfile,"w+") #只获取.jpg格式文件,最后一个参数0表示不作目录递归,1表示递归
ListFilesToTxt(args.directory,file,".jpg",0)
file.close()
else:
print("dir is None")