一、批量压缩、解压文件
os库是为了监测生成的文件夹是否已存在。主要的库是zipfile,它提供了有关windows下的文件/文件夹的压缩、解压的函数。
压缩、解压函数及整体代码如下:
import os
import zipfile
def Compress_path_zip(path_all):
path_all_list = os.listdir(path_all)
# 列出总文件夹内所有需要压缩的文件夹
for path_each in path_all_list:
path_compress = os.path.join(path_all, path_each)
# 待压缩的绝对路径
if os.path.isdir(path_compress):
print("正在压缩:%s" % path_each)
# 遍历所有需要压缩的文件夹
if os.path.exists(path_all + "%s.zip" % path_each):
print(path_all + "%s1.zip" % path_each+"已存在,新文件名为'%s'" % (path_all + "%s1.zip" % path_each))
zip_file = zipfile.ZipFile(path_all + "%s1.zip" % path_each, 'w', zipfile.ZIP_DEFLATED, allowZip64=True)
# 创建的压缩对象用于执行后续操作
# file_list = zip_file.namelist()
# 列出压缩文件夹中所有文件
else:
zip_file = zipfile.ZipFile(path_all + "%s.zip" % path_each, 'w', zipfile.ZIP_DEFLATED, allowZip64=True)
file_list = os.listdir(path_compress)
# 待压缩文件夹内所有文件
# zip_file.setpassword(b'123')
for file_each in file_list:
# 遍历所有文件夹内的文件
file_path = os.path.join(path_compress, file_each)
zip_file.write(file_path, file_each)
zip_file.close()
else:
print(path_each, "不是文件夹,不进行压缩")
continue
def Decompress_path_zip(path_all):
path_all_list = os.listdir(path_all)
for path_each in path_all_list:
# 遍历所有需要压缩的文件夹
if path_each.endswith('.zip'):
print("正在解压:%s" % path_each)
path_decompress = os.path.join(path_all, path_each)
zip_file = zipfile.ZipFile(path_decompress, 'r') # 压缩文件位置
for file in zip_file.namelist():
if os.path.exists(path_decompress[:-4]):
print("'%s'" % path_decompress[:-4], "已存在,新文件名为'%s'" % (path_decompress[:-4] + "1"))
zip_file.extract(file, path_decompress[:-4] + "1") # 解压位置,pwd="1234".encode('utf-8')
else:
zip_file.extract(file, path_decompress[:-4]) # 解压位置
zip_file.close()
else:
print(path_each, "非zip文件,不进行解压!")
continue
if __name__ == "__main__":
path = "./241012-ID/"
# Compress_path_zip(path)
Decompress_path_zip(path)
二、读取txt文件并在txt每行文件后面增加内容
label=2
ff = open('./10-12-1.txt','w') #打开一个文件,可写模式
with open('./10-12.txt','r') as f: #打开一个文件只读模式
line = f.readlines()
i = 0
for line_list in line:
line_new =line_list.replace('\n',',') #将换行符替换为空(''),逗号
b = str(label) #主要是这一步 将之前列表数据转为str才能加入列表
# line_new = line_new +'.jpg '+b +'\n' # 每行添加 .jpg 2 (可随意更改)
line_new = line_new +'\n' # 只加逗号
i += 1
print(line_new)
ff.write(line_new) #写入一个新文件中