如何获取压缩文件夹中文件的元数据
How to get meta-data of files inside compressed folder
我正在尝试构建一个用 Python 编写的脚本,它探索一个存档(在本例中是一个 zip),并递归地获取文件的所有元数据。
我通常使用以下命令获取元数据:
(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(fname)
问题是我不想从 zip 中提取文件,所以我没有提供给 os.stat() 的路径。我唯一能做的就是:
z=zipfile.ZipFile(zfilename,'r')
for info in z.infolist():
fname = info.filename
data = z.read(fname)
我可以使用 'data' 获取我需要的信息吗?还是我应该使用其他方法?
ZIP 格式包含的元数据几乎没有文件系统上的文件多(也不需要)。您可以从 zip 文件中提取所有元数据,而无需解压缩文件内容。
ZipFile.infolist()
method gives you a list of ZipInfo
instances,让您可以访问该元数据。
import os
import zipfile
z=zipfile.ZipFile(zfilename,'r')
for info in z.infolist():
fname = info.filename
data = z.read(fname)
print(fname)
print(data)
with zipfile.ZipFile(path_zip_file, 'r') as zip_file:
for elem in zip_file.infolist():
if elem.filename.endswith('/'):
continue
print('year_last_modified', elem.date_time[0])
print('month_last_modified', elem.date_time[1])
您可以使用 infolist()
方法获取文件列表 * .zip 文件
要仅处理文件,请使用检查 if elem.filename.endswith('/')
为了获取文件创建/修改的年份和月份,可以使用elem.date_time[0]
和elem.date_time[1]
我正在尝试构建一个用 Python 编写的脚本,它探索一个存档(在本例中是一个 zip),并递归地获取文件的所有元数据。
我通常使用以下命令获取元数据:
(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(fname)
问题是我不想从 zip 中提取文件,所以我没有提供给 os.stat() 的路径。我唯一能做的就是:
z=zipfile.ZipFile(zfilename,'r')
for info in z.infolist():
fname = info.filename
data = z.read(fname)
我可以使用 'data' 获取我需要的信息吗?还是我应该使用其他方法?
ZIP 格式包含的元数据几乎没有文件系统上的文件多(也不需要)。您可以从 zip 文件中提取所有元数据,而无需解压缩文件内容。
ZipFile.infolist()
method gives you a list of ZipInfo
instances,让您可以访问该元数据。
import os
import zipfile
z=zipfile.ZipFile(zfilename,'r')
for info in z.infolist():
fname = info.filename
data = z.read(fname)
print(fname)
print(data)
with zipfile.ZipFile(path_zip_file, 'r') as zip_file:
for elem in zip_file.infolist():
if elem.filename.endswith('/'):
continue
print('year_last_modified', elem.date_time[0])
print('month_last_modified', elem.date_time[1])
您可以使用 infolist()
要仅处理文件,请使用检查 if elem.filename.endswith('/')
为了获取文件创建/修改的年份和月份,可以使用elem.date_time[0]
和elem.date_time[1]