使用场景:运维处理指定目录一级或多级子目录下的大量文件或图片名,需要将这些目录及文件名作为字符串写入文件中。
实例1:统计指定目录下的文件,并将文件名写入文件中
import os
import imghdr
path = "D:/curl/" # 文件夹路径
filename_list = os.listdir(path) # 获取文件夹路径下的所有目录及文件名
path1 = './bb/'
num = 0
fb = open('./bb.txt', 'w')
for i in range(len(filename_list)): # 打印文件路径下的目录及文件名称
new_path = os.path.join(path1, filename_list[i]) # 把目录和文件名合成一个路径
if imghdr.what(filename_list): # 判断是否为文件
num +=1
fname = new_path.split('/')[-1]
fb.write(fname + '\n')
fb.close()
print(num)
实例2:统计指定目录多级子目录下的文件或图片,并将文件名写入文件中
import os
outer_path = 'D:/curl/'
folderlist = os.listdir(outer_path) # 列举文件夹
file_list = []
write_file = open('./bb/aa.txt', 'a')
for root, dirs, files in os.walk(outer_path):
# print(root) #当前目录路径
# print(dirs) #当前路径下所有子目录
#print(files) #当前路径下所有非目录子文件
if files:
list1 = str(files)
write_file.write(list1 + '\n')
write_file.close()
#print(file_list)
实例3:将指定目录的.jpg图片名称写入.txt文件中
import os
data_base_dir = "D:/curl/rym2//" #存放原始图片地址
file_list = []
write_file_name = 'D:/curl/bb.txt' #读取图片文件,并将图片地址、图片名和标签写到txt文件中
write_file = open(write_file_name, "w")
for file in os.listdir(data_base_dir): #file为current_dir当前目录下图片名
if file.endswith(".JPG"): #如果file以jpg结尾
write_name = file.split('/')[-1] #图片路径 + 图片名 + 标签
file_list.append(write_name) #将write_name添加到file_list列表最后
# sorted(file_list) #将列表中所有元素随机排列
number_of_lines = len(file_list) #列表中元素个数
for current_line in range(number_of_lines): #将图片信息写入txt文件中,逐行写入
write_file.write(file_list[current_line] + '\n')
write_file.close()
#print(number_of_lines)