我正在尝试根据今天的日期压缩文件。我已经实现了如何使用循环将文件夹中的所有文件压缩的方法,但是我只想压缩具有以下格式的文件:
yyyymmdd_filename
当前,我的脚本获取今天的日期并将其转换为所需的格式:
import os
import zipfile
import datetime
today = datetime.date.today().strftime('%y%m%d')
print(today)
today = str(today)
print(today)
fantasy_zip = zipfile.ZipFile('C:\\Users\\nex26da\\Downloads\\practice\\ziprep\\archive.zip', 'w')
for folder, subfolders, files in os.walk('C:\\Users\\nex26da\\Downloads\\practice\\ziprep'):
for file in files:
if not file.endswith('.zip'):
fantasy_zip.write(os.path.join(folder, file),
os.path.relpath(os.path.join(folder, file), 'C:\\Users\\nex26da\\Downloads\\practice\\ziprep'),
compress_type=zipfile.ZIP_DEFLATED)
fantasy_zip.close()
我正在努力的部分是识别文件。我需要使用正则表达式还是可以通过一些剥离操作来实现
答案 0 :(得分:1)
使用str.startswith
。
例如:
import os
import zipfile
import datetime
today = datetime.date.today().strftime('%Y%m%d') #Update!
print(today)
today = str(today)
print(today)
fantasy_zip = zipfile.ZipFile('C:\\Users\\nex26da\\Downloads\\practice\\ziprep\\archive.zip', 'w')
for folder, subfolders, files in os.walk('C:\\Users\\nex26da\\Downloads\\practice\\ziprep'):
for file in files:
if file.startswith(today) and not file.endswith('.zip'):
fantasy_zip.write(os.path.join(folder, file),
os.path.relpath(os.path.join(folder, file), 'C:\\Users\\nex26da\\Downloads\\practice\\ziprep'),
compress_type=zipfile.ZIP_DEFLATED)
fantasy_zip.close()