首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编写zip文件python时文件日期的行为

在Python中,当我们使用zipfile模块编写zip文件时,文件日期的行为是根据操作系统的文件系统来确定的。具体来说,zip文件中的每个文件都有一个日期时间戳,表示文件的创建或修改日期。

在Windows操作系统中,文件的日期时间戳包括创建日期、修改日期和访问日期。而在Unix/Linux操作系统中,文件的日期时间戳只包括修改日期。

当我们使用zipfile模块的write()方法向zip文件中写入文件时,默认情况下,zip文件中的文件日期时间戳会被设置为当前时间。这意味着,无论原始文件的日期时间戳是什么,写入zip文件后,所有文件的日期时间戳都将被更新为当前时间。

如果我们希望保留原始文件的日期时间戳,可以使用zipfile模块的ZipInfo对象来设置文件的日期时间戳。我们可以通过调用ZipInfo对象的date_time属性来设置日期时间戳,该属性接受一个包含年、月、日、时、分、秒的元组作为参数。

以下是一个示例代码,演示如何编写zip文件时保留原始文件的日期时间戳:

代码语言:txt
复制
import zipfile
import os

def add_file_to_zip(zip_file, file_path):
    # 获取文件的日期时间戳
    timestamp = os.path.getmtime(file_path)
    # 将时间戳转换为年、月、日、时、分、秒的元组
    date_time = tuple(map(int, time.strftime('%Y %m %d %H %M %S', time.localtime(timestamp))))
    
    # 创建ZipInfo对象,并设置日期时间戳
    zip_info = zipfile.ZipInfo(file_path, date_time)
    
    # 打开zip文件,并将文件添加到zip文件中
    with zipfile.ZipFile(zip_file, 'a') as zf:
        zf.write(file_path, arcname=os.path.basename(file_path), zipinfo=zip_info)

# 示例用法
zip_file = 'example.zip'
file_path = 'example.txt'
add_file_to_zip(zip_file, file_path)

在上述示例中,我们使用os.path.getmtime()函数获取文件的修改时间戳,并使用time.strftime()函数将时间戳转换为元组形式的日期时间。然后,我们创建了一个ZipInfo对象,并将日期时间戳设置为原始文件的日期时间戳。最后,我们使用zipfile.ZipFile()打开zip文件,并使用write()方法将文件添加到zip文件中。

需要注意的是,以上示例只是演示了如何保留原始文件的日期时间戳,实际使用时还需要根据具体需求进行适当的修改和调整。

推荐的腾讯云相关产品:腾讯云对象存储(COS)

  • 概念:腾讯云对象存储(COS)是一种海量、安全、低成本、高可靠的云存储服务,适用于存储和处理任意类型的文件、图片、音视频等海量数据。
  • 分类:云存储服务
  • 优势:高可靠性、低成本、强大的数据处理能力、灵活的权限管理、全球加速等。
  • 应用场景:网站和应用程序的静态资源存储、大规模数据备份和归档、多媒体内容存储和分发、数据共享和协作等。
  • 产品介绍链接地址:腾讯云对象存储(COS)

请注意,以上答案仅供参考,具体的技术实现和推荐产品可能因实际需求和环境而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • python MultipartEncoder传输zip文件实例

    需求:对方提供处理文件接口,本地将待处理文件压缩后,通过http post multipart方式上传,等待处理完成后从相应连接下载结果 代码: import os import time import...模拟浏览器上传文件脚本(Multipart/form-data格式) http协议本身原始方法不支持multipart/form-data请求,这个请求由原始方法演变而来。...multipart/form-data基础方法是post,也就是说是由post方法来组合实现,与post方法不同之处:请求头,请求体。...post内容,如文件内容和文本内容自然需要分割开来,不然接收方就无法正常解析和还原这个文件了。...传输zip文件实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.8K10

    使用Python模仿文件行为

    Python中,你可以通过文件操作函数(如open()函数)以及模拟输入输出流库(如io模块)来模拟文件行为。下面是一些示例,展示了如何使用这些工具在Python中模拟文件行为。...1、问题背景在编写一个脚本,需要将SQL数据库中某些表列转储到文件,然后通过FTP传输。...由于转储内容可能非常庞大,因此设计了一个方案,即创建一个MysSQLFakeFile,该文件在readline方法中逐行查询光标,并将其传递给ftplib.FTP.storlines。...在这个示例中,我在使用io.StringIO创建了一个内存中文件对象,并向其中写入了一些文本。然后我们将文件指针移动到开头,读取内容并打印出来。最后,我们关闭内存中文件对象。...使用这些方法,我们可以在Python中模拟文件行为,并根据需要进行读写操作。

    16310

    Python实用秘技01」复杂zip文件解压

    ❝本文完整示例代码及文件已上传至我Github仓库https://github.com/CNFeffery/PythonPracticalSkills ❞ 这是我新系列文章「Python实用秘技」...第1期,本系列立足于笔者日常工作中使用Python辅助办公心得体会,每一期为大家带来一个3分钟即可学会简单小技巧。...作为系列第1期,我们即将学习是:复杂zip文件解压。...废话不多说,直接看问题,使用过Python标准库zipfile解压过zip格式压缩包朋友们,可能遇到过,当压缩文件目录或文件名中包含中文等常见unicode字符,典型如下面的例子: 使用zipfile...(target_path, recode(file_or_path)), 'wb') as z: # 这里基于Zipfile.open()提取文件内容需要使用原始乱码文件

    45710

    Python批量提取zip、docx、xlsx文件中图像文件

    任务描述: 批量提取zip压缩文件图像文件,解压缩并保存为独立文件。...相关阅读: Python批量提取Excel文件图片 Python使用标准库zipfile提取docx文档中所有图片 Python提取docx文档中嵌入式图片和浮动图片又一种方法 Python...提取docx文档中所有嵌入式图片和浮动图片 使用Python批量提取并保存docx文档中图片 本文代码同样适用于docx、xlsx等表面上看起来与zip毫无关系但实际内部实现类似于zip文件文件...另外,程序中也可以不用标准库io和扩展库pillow,借助于内置函数open()来实现图像文件提取和保存更直接和方便一些,这里只是为了演示一种用法,并且这种用法在特定场合中有重要作用。 参考代码:

    88020

    python编写文件统计脚本

    python编写文件统计脚本 思路:用os模块中一些函数(os.listdir()、os.path.isdir()、os.path.join()、os.path.abspath()等) 实现功能:显示多级目录...,以及自己要找具体文件类型(例:以".py"结尾文件),并读取每个文件第一行(一般为注释说明,这样就能大致了解这个文件是干事什么) 先编写二级目录文件统计脚本 代码如下: #文件统计 os.chdir...如何实现多级目录中文件统计呢,这里用函数递归调用方式来实现 代码如下: #文件统计 def sfile(dir,layer=1): print(" "*(layer-1)+dir)...上图可以看到实现了多级目录中统计".py"结尾文件,并打印出每个文件第一行。  ...未解决问题:如何实现统计"F盘"中所有的jpg文件,但不显示(打印)目录中没有jpg文件路径,只显示目录中有jpg文件路径 本人脑袋要爆炸了,实在想不出,有想法博友,给点意见

    64010

    Python实用秘技01」复杂zip文件解压

    本文完整示例代码及文件已上传至我Github仓库https://github.com/CNFeffery/PythonPracticalSkills   这是我新系列文章「Python实用秘技」第...1期,本系列立足于笔者日常工作中使用Python辅助办公心得体会,每一期为大家带来一个3分钟即可学会简单小技巧。   ...作为系列第1期,我们即将学习是:复杂zip文件解压。   ...废话不多说,直接看问题,使用过Python标准库zipfile解压过zip格式压缩包朋友们,可能遇到过,当压缩文件目录或文件名中包含中文等常见unicode字符,典型如下面的例子:   使用...(target_path, recode(file_or_path)), 'wb') as z: # 这里基于Zipfile.open()提取文件内容需要使用原始乱码文件

    77750

    Centos7备份文件备份文件加入备件日期

    Linux是以文件为基础来管理系统中设备、接口、文件、启动及应用软件,因为在本过程中,对应用系统.conf文件、脚本软件、shell等在编辑都要求先做备份。...一般我对重要文件进行操作,都要对文件先进行备份,如: 01、新建一个文件 #echo "test copy.." > /home/hdnnadmin/test-copy ?...{,-bak} 查看备份结果 ?...此时显示在备份文件哪里多了备件日期 总结 以上所述是小编给大家介绍关于Centos7备份文件备份文件加入备件日期,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。...在此也非常感谢大家对ZaLou.Cn网站支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    1.1K41

    利用 Python 破解 ZIP 或 RAR 文件密码

    本文将会利用 Python 破解压缩包密码,这里以 ZIP/RAR 为例。...本文源码可在微信公众号「01 二进制」后台留言「破解压缩包」获得 破解原理 其实原理很简单,一句话概括就是「大力出奇迹」,Python 有两个压缩文件库:zipfile 和 rarfile,这两个库提供解压缩方法...读取压缩文件 # 根据文件扩展名,使用不同库 if filename.endswith('.zip'): fp = zipfile.ZipFile(filename) elif filename.endswith...例如 python main.py test.zip 运行结果: $ python main.py test.zip Success! ====>323126 扩展 密码本如何获取?...这里给出两个思路 多线程(进程)破解 密码本如果很多且密码数量庞大,我们可以采用多线程(进程)方式读取密码,一个进程读一个密码本,一个线程分段读密码。

    10.7K20

    ZIP和RAR文件不同

    生活中我们经常需要使用电脑与朋友之间文件传送,但往往会受到文件大小限制而无法发出去,此时需要将文件压缩后再发送,那么有小伙伴会问rar和zip又有什么区别?...ZIP和RAR是最流行文件格式,用来压缩数据。他们无疑是压缩文件王者。 虽然二者都使用超快压缩算法来压缩和解压缩内容,但从速度和效率上来说,RAR效率要高于ZIP。...这两种方法都是压缩算法,可以有效地压缩文件,从而在不影响文件内容情况下缩小文件大小。这篇文章介绍了ZIP和RAR文件不同。...压缩文件格式rar和zip不同 1、zip起源比rar要早很多,并且它普及率比后者更广。操作系统对zip直接支持解压提取文件,其应用范围比rar要好得多。...2、文件压缩简介:简单经过压缩文件被压缩为压缩文件,压缩原理是将文件二进制代码压缩。rar和zip是通用压缩文件格式。 3、众所周知,zip是开源软件,而rar是收费

    2.4K30

    Makfile文件编写

    Makfile文件编写 不定期更新 make和Makefile 以下来自百度百科 make: make是一条计算机指令,是在安装有GNU Make计算机上可执行指令。...该指令是读入一个名为makefile 文件,然后执行这个文件中指定指令。...Makefile编写 以下是本人自己比较喜欢用Makefile使用方式总结,一般为单个项目产生单个可执行文件,一般是控制台程序或者opencv相关 简单文件C/C++控制台程序 文件目录是...main生成命令里面把gcc编译程序换成g++ 解释 上述是我C/C++多文件编译一般使用Makefile编写风格,因为没有特殊中间文件操作,所以都是用make自动规则,下面解释上面Makefile...三、声明依赖目标文件生成 这部分是声明所有依赖文件生成方式,使用了make默认生成规则,语法是 目标文件: 依赖文件和源文件 这部分对应内容是 main.o : main.c stack.o

    68730

    python-将文件日期分类

    文章目录 问题 解决 成功截图 读取文件创建时间 移动文件 判断目录是否存在 判断是否是重复文件 创建文件夹 遍历所有文件 因此综合得到整体代码 升级版,不仅按照日期,也按照格式进一步分类 问题...我不希望那些公司玩弄我资料。 下载后文件自动按照时间分类创建一系列文件夹分别存入下载内容。...数千个文件按时间以及格式归类创建文件夹 解决 整体逻辑是读取所有的文件名字,找到文件后读取创建日期,格式信息,如果这个日期文件夹比如2020-2-1已经存在,再判断目标文件夹是否有重复文件,满足条件则将文件移入...否则创建一个新创建日期文件夹,然后移动入 成功截图 我要移动文件有数千个,已经成功过了,因此这里放了一个测试案例图片,只有两个文件。 ? ?...st_size: 普通文件以字节为单位大小;包含等待某些特殊文件数据。 st_atime: 上次访问时间。 st_mtime: 最后一次修改时间。

    1.7K10

    Python 技术篇-用zipfile库进行zip文件压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构

    首先给大家演示下 zip 文件解压方法。...这是压缩包解压后样式。 然后给大家看下 zip 文件压缩过程,我压缩方法可以直接压缩文件在当前目录下,并不把自己压缩进来,而且可以保留原来文件目录结构。...参数一:压缩文件位置 参数二:压缩后压缩包 ''' # 提前读取,避免把压缩包自己加上去 # 这里用list()做一个克隆提前执行下,不然会在后面循环才执行这一引用...= r'D:\lizhi\压缩测试' # 压缩到指定路径下zip文件 path_zip = r'D:\lizhi\压缩测试\chromedriver_win32.zip' # 压缩文件 file_to_zip...(path_original, path_zip) 我把之前压缩包删掉了,用那个 driver 文件夹重新进行压缩,现在看到是新生成

    1.5K10

    zip文件加密几种破解方法

    ,但是有时不行,第三种方法可以应对各种zip伪加密 还是要密码,那我们只好使用杀手锏了,请看第三种方法 三、修改文件加密标志位 一个zip文件由三个部分组成: 压缩源文件数据区+压缩源文件目录区+...(有无加密) 08 00:压缩方式 5A 7E:最后修改文件时间 F7 46:最后修改文件日期 16 B5 80 14:CRC-32校验(1480B516) 19 00 00 00:压缩后尺寸...,改为09 00打开就会提示有密码了) 08 00:压缩方式 5A 7E:最后修改文件时间 F7 46:最后修改文件日期 16 B5 80 14:CRC-32校验(1480B516) 19 00...第二个数字为奇数 –>加密 ; 第二个数字为偶数 –>未加密 压缩源文件目录结束标志 :50 4B 05 06:目录结束标记 00 00:当前磁盘编号 00 00:目录区开始磁盘编号 01 00...:本磁盘上纪录总数 01 00:目录区中纪录总数 59 00 00 00:目录区尺寸大小 3E 00 00 00:目录区对第一张磁盘偏移量 00 00 1A:ZIP 文件注释长度 我们用winhex

    28.5K30
    领券