# _*_ coding:utf8 _*_ ################################################################ ## 功能:遍历XXX路径下的一个图片文件夹,并输出所有路径到一个txt文件。 ######################################################################### import os import sys def listfiles(rootDir,txtfile,label=0): #label=1 ftxtfile = open(txtfile,'w') list_dirs = os.walk(rootDir) count = 0 dircount = 0 for root, dirs, files in list_dirs: for d in dirs: #print os.path.join(root,d) #python2.x print( os.path.join(root,d) ) dircount = dircount + 1 for f in files: #print os.path.join(root,f) #python2.x print( os.path.join(root,f) ) ftxtfile.write(os.path.join(root,f)+' '+str(label)+' ') count = count + 1 #print rootDir+"has"+str(count)+"files" print( rootDir+"has "+str(count)+" files" ) listfiles(sys.argv[1],sys.argv[2],sys.argv[3])
# sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始。
# Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,
# 要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。 # sys模块sys.argv是个列表,而sys.argv[0]、sys.argv[1]、sys.argv[2]只不过是在取列表中的值,但这个列表有我们决定。 # sys.argv[0]接收的是文件名(如果运行文件和运行终端不在同一路径下会接收其的路径及文件名) # sys.argv[1] 接收的的在终端传入的第一个参数 # sys.argv[2]接收的的在终端传入的第二个参数 # python eg8-readimg2txt.py "/home/u/wp_data/learn-sh/新图像/" "/home/u/wp_data/learn-sh/新图像/write2txt2.txt" 0
# write2txt.txt
/home/u/wp_data/learn-sh/新图像/cute_9.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_14.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_4.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_19.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_3.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_13.jpg 0 /home/u/wp_data/learn-sh/新图像/write2txt.txt 0 /home/u/wp_data/learn-sh/新图像/cute_16.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_5.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_1.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_8.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_18.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_11.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_10.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_17.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_15.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_7.jpg 0 /home/u/wp_data/learn-sh/新图像/cute_2.jpg 0
遇到问题: