import zipfile import os.path, time import os import time import pyzipper def TimeStampToTime(timestamp): timeStruct = time.localtime(timestamp) return time.strftime('%Y-%m-%d %H:%M:%S', timeStruct) def get_FileCreateTime(filePath): # '''获取文件的创建时间''' # filePath = unicode(filePath,'utf8') t = os.path.getctime(filePath) return TimeStampToTime(t) def get_FileModifyTime(filePath): # '''获取文件的修改时间''' # filePath = unicode(filePath, 'utf8') t = os.path.getmtime(filePath) return TimeStampToTime(t) def get_FileAccessTime(filePath): # '''获取文件的访问时间''' # filePath = unicode(filePath, 'utf8') t = os.path.getatime(filePath) return TimeStampToTime(t) def get_FileSize(filePath): # '''获取文件的大小,结果保留两位小数,单位为MB''' # filePath = unicode(filePath,'utf8') fsize = os.path.getsize(filePath) fsize = fsize / float(1024 * 1024) return round(fsize, 2) name = '49183-secret.zip' num=49183 out=open('out.txt','w') while True: fz = zipfile.ZipFile(name) fz.extractall() for zi in fz.infolist(): fz.extract(zi) date_time = time.mktime(zi.date_time + (0, 0, -1)) os.utime(zi.filename, (date_time, date_time)) m=get_FileModifyTime(zi.filename) print(m) fz.close() if m=='2023-05-01 10:13:52': out.write('0') else: out.write('1') num=num-1 path=name name = str(num)+'-secret.zip' fz.close() os.remove(path)知识点是什么
时间: 2024-04-28 21:19:17 浏览: 169
该代码主要涉及以下知识点:
1. zipfile模块:用于读取和写入zip格式的压缩文件;
2. os模块:提供了访问操作系统功能的接口,如文件操作、进程管理等;
3. time模块:提供了时间处理相关的函数和类;
4. pyzipper模块:用于读取和写入zip格式的压缩文件,并支持密码保护;
5. 文件操作:获取文件的大小、创建时间、修改时间和访问时间等信息,并修改文件的时间戳;
6. 循环结构和条件判断:使用while循环和if语句实现对多个文件的处理。
相关问题
import zipfile import os def compress_file(file_path, zip_path): with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf: zipf.write(file_path, arcname=file_path) dch = '911C' dh = '01' file_path = os.path.join(r'D:/gangko/moxingku', dch + dh ) zip_path = os.path.join(r'D:/gangko/zip', dch + dh +'.zip') compress_file(file_path, zip_path) 这段代码压缩的是gangko/moxingku/911C01一连串,如何改,只压缩911C01文件夹。
要只压缩文件夹 `911C01`,你可以使用 `shutil` 模块的 `make_archive` 函数来实现。下面是修改后的代码示例:
```python
import shutil
dch = '911C'
dh = '01'
folder_path = os.path.join(r'D:/gangko/moxingku', dch + dh)
zip_path = os.path.join(r'D:/gangko/zip', dch + dh + '.zip')
shutil.make_archive(zip_path, 'zip', folder_path)
```
在上述代码中,我们使用 `shutil.make_archive` 函数来创建压缩文件。第一个参数是输出的压缩文件路径,第二个参数是压缩文件的格式(这里是 `'zip'`),第三个参数是要压缩的文件夹路径。
运行上述代码后,会在指定的输出路径生成一个名为 `911C01.zip` 的ZIP文件,其中只包含了文件夹 `911C01` 中的内容。
请确保已经导入了 `shutil` 模块,并将 `compress_file` 函数的相关代码注释或删除,因为我们现在使用了 `shutil.make_archive` 来进行压缩。
如果你需要更多帮助,请提供更多详细信息。
import os import zipfile def compress_folder(folder_path, output_path): with zipfile.ZipFile(output_path, 'w') as zipf: for root, dirs, files in os.walk(folder_path): for file in files: file_path = os.path.join(root, file) zipf.write(file_path, os.path.relpath(file_path, folder_path)) def extract_zip(zip_path, output_path): with zipfile.ZipFile(zip_path, 'r') as zipf: zipf.extractall(output_path) # 压缩文件夹 folder_path = 'path/to/folder' output_path = 'path/to/output.zip' compress_folder(folder_path, output_path) # 解压缩文件 zip_path = 'path/to/zip' output_path = 'path/to/output_folder' extract_zip(zip_path, output_path)是什么意思
这段代码是用于压缩和解压缩文件夹的功能。
`compress_folder` 函数用于将指定的文件夹压缩成一个ZIP文件。它接受两个参数:`folder_path`(要压缩的文件夹路径)和 `output_path`(压缩后的ZIP文件路径)。函数会遍历文件夹中的所有文件和子文件夹,并将它们添加到ZIP文件中。
`extract_zip` 函数用于解压缩指定的ZIP文件到指定的目录。它接受两个参数:`zip_path`(要解压缩的ZIP文件路径)和 `output_path`(解压缩后的目录路径)。函数会将ZIP文件中的所有文件提取到指定的目录中。
你可以将 `folder_path`、`output_path`、`zip_path` 和 `output_path` 替换为你实际使用的路径,以实现对应的压缩和解压缩操作。
阅读全文