首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python 压缩文件方法汇总

看起来我们所做的批量压缩与之前使用 zlib 或 bz2 的效果相同,但由于 shutil.copyfileobj 方法,我们实现了分块增量压缩,不必像使用lzma那样循环数据。...在这段代码中,首先在 with 上下文管理中,以 w 模式使用 ZipFile创建 ZIP 归档文件,然后文件添加到归档文件中。...你会注意到,实际上不需要打开要添加文件 —— 我们所需要做的就是调用 write 方法,并传入文件名为参数。添加所有文件后,我们还使用 setpassword 方法设置存档密码。...然后所有的文件添加到存档中。使用 tarfile 模块,还可以传入符号链接(软连接)、或传入可以递归添加的整个目录。 接下来,为了确认所有文件都确实存在,我们使用 getmembers 方法。...tarfile 提供了一个我们在其他模块中没有看到的很酷的特性,那就是在文件添加到归档文件时能够修改文件的属性。

2.8K10

Python某漏洞15年未修,影响35万余个项目

该漏洞被追踪为CVE-2007-4559(CVSS评分:6.8),根植于tarfile模块,可能导致任意文件写入的代码执行。...“该漏洞是tarfile模块中的extract和extractall函数中的路径遍历攻击,允许攻击者通过在TAR档案中的文件名中添加‘..’序列来覆盖任意文件。”...简单地说,威胁者可以利用这个弱点上传恶意tarfile,使其有可能逃脱文件被提取到的目录,并实现代码执行,从而使对手有可能夺取对目标设备的控制。...“在没有事先检查的情况下,千万不要从未知来源提取档案,"tarfilePython 文档中写道。...研究人员指出:“如果不检查,这个漏洞就会被无意中添加到全球数十万个开源和闭源项目中,从而形成一个实质性的软件供应链攻击面。”

27520

一个 15 年未修补 Python 漏洞让攻击者可以执行代码:35 万个开源代码存储库岌岌可危

自2007年以来一直未修补 这个漏洞存在于Python tarfile软件包中,具体存在于使用未作净化处理的tarfile.extract()函数或tarfile.extractall()内置默认值的代码中...Trellix高级威胁研究团队的漏洞研究人员Charles McFarland说:“未编写在调用tarfile.extract()或tarfile.extractall() 之前净化处理成员文件的任何安全代码导致了目录遍历漏洞...该漏洞源自这个事实:Pythontarfile模块中的extract函数中的代码明确信任TarInfo对象中的信息,加入了被传递给extract函数和TarInfo对象中名称的路径。...CVE-2007-4559—路径结合文件名 披露后不到一周,Python错误跟踪器上的一条消息宣布该问题已关闭,修正版在更新文档,并警告“从不受信任的来源提取存档文件可能很危险”。...稍后,它们通过合并请求被添加到主项目中。 由于受影响的代码存储库数量众多,研究人员预计未来几周会有70000多个项目收到修复程序。

51920

Python基础14-内置模块

具体的:包就是一个包含有__init__.py文件文件夹,所以其实我们创建包的目的就是为了用文件文件/模块组织起来 需要强调的是: 1.在python3中,即使包下没有__init__.py文件,...-- 为什么要使用包 包的本质就是一个文件夹,那么文件夹唯一的功能就是文件组织起来 随着功能越写越多,我们无法所以功能都放到一个文件中,于是我们使用模块去组织功能,随着模块越来越多,我们就需要用文件模块文件组织起来...用户无法区分模块是文件还是一个包,我们定义包是为了方便开发者维护 7、实验七 包整理当做一个模块,移动到别的目录下,操作sys.path 包的使用 ---- 示范文件 glance...,言外之意,必须在顶级包内使用相对导入,每增加一个.代表跳到上一级文件夹,上一级不应该超出顶级包 time模块 ---- time模块介绍 与时间相关的功能模块 在Python中,时间分为3种: 1...os,就可以调用系统命令 ---- os模块使用 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于

1.1K20

python3-sys&shutil模块实战解析

,初始化使用pythonpath环境变量的值 print(sys.platform) #返回操作平台的名称 2.shutil高级的文件文件夹,压缩包处理模块 import shutil shutil.copyfileobj...(open('a.txt.py','r'),open('a.py1','w')) #文件内容拷贝到另一个文件中 shutil.copyfile('a.py1','a2.py') #拷贝文件 shutil.copymode...包 z = zipfile.ZipFile('D:/软件/shutil_shiyan.zip','w') #打开并指定压缩包保存路径(一定得是zip后缀) z.write('D:/a.txt') #添加文件目录到压缩包...z.write('C:/shutil.make_ar.zip') #添加文件目录到压缩包 z.write('C:/b') #添加文件目录到压缩包 z.close() #tar.gz包解压 import...添加文件目录到压缩包 tar.add('C:/shutil.make_ar.zip') #添加文件目录到压缩包 tar.add('C:/b') #添加文件目录到压缩包 tar.close()

64070

Python 中的 if __name__ == __main__ 该如何理解

一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。...实际上在导入的时候,有一部分代码我们是希望被运行的。   ...__main__.py 文件python -m   Python 的 -m 参数用于一个模块或者包作为一个脚本运行, __main__.py 文件则相当于是一个包的”入口程序“。   ...然后我们来总结一下: 1、 加上 -m 参数时会把当前工作目录添加到 sys.path 中,不加时则会把脚本所在目录添加到 sys.path 中。...后序   我试图使用长篇大论来阐述,在 Python如何理解 if __name__ == '__main__' 这个问题,不知道我有没有描述得足够的明白。

1K40

Python 中的 if __name__ == __main__ 该如何理解

一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。...实际上在导入的时候,有一部分代码我们是希望被运行的。   ...__main__.py 文件python -m   Python 的 -m 参数用于一个模块或者包作为一个脚本运行, __main__.py 文件则相当于是一个包的”入口程序“。   ...然后我们来总结一下: 1、 加上 -m 参数时会把当前工作目录添加到 sys.path 中,不加时则会把脚本所在目录添加到 sys.path 中。...后序   我试图使用长篇大论来阐述,在 Python如何理解 if __name__ == '__main__' 这个问题,不知道我有没有描述得足够的明白。

85130

Python: 一周笔记

微信截图_20170806152336.png 主要介绍几个用到的python模块的使用方法。 python 含有丰富的内置和第三方库,企图全部掌握并精通那是不可能的。...同时你可以从你使用的这些库中学习: 项目的文档结构 项目的代码风格 组织结构 代码扩展能力 API的设计 ...... 1. os 主要是完成的是对文件文件目录等的操作。...好了,具体如何操作可以看看文档: 为了讲述这几个模块,我假定了这样一个任务: 前提: 服务器/root/ 目录下有一个data文件: /root/data ├── info.list └── learn.list...登入远程服务器:paramiko 远程数据进行打包操作:shell tar 命令 :data.tar.gz 远程数据进行下载到本地:sftp 解压指定下载的data.tar.gz 文件到指定目录下:...解压下载的data.tar.gz 文件到指定目录下 def vtarfiles(self, file, path): t = tarfile.open(file, 'r:gz')

59330

爬虫 (二十二) 最常见的文件操作模块(值得收藏) (十三)

多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path)...且返回的文件夹的结果包含. os.path.join(path1,path2,...)....html 情况一:在一个目录下面只有文件,没有文件夹的时候,这个时候可以使用os.listdir 情况二:在递归的情况,一个目录下面既有目录也有文件使用os.walk 9.1 情况1详解 在我们的桌面上有一个...os.listdir读取到一个目录下面所有的文件,然后使用os.path.join 把目录和路径和文件结合起来,就得到了文件的绝对路径,结果如下: C:\Users\Administrator\Desktop...,里面的组织结构如下: ?

91930

trick(二)、if __name__ == ‘__main__‘

不管是直接运行还是被导入,.py文件的最顶层代码都会被运行(Python用缩进来区分代码层次),当一个.py文件作为模块被导入时,我们可能不希望一部分代码被运行。...4、__main__.py文件python -m Python的-m参数用于一个模块或者包作为一个脚本运行,__main__.py文件相当于是一个包的“入口程序“。...使用python package运行,输出结果: __main__ ['package', ...] 5、总结 总结一下 当加上-m参数时,Python会把当前工作目录添加到sys.path中;不加-...m时,Python则会把脚本所在目录添加到sys.path中。...当加上-m参数时,Python会先将模块或者包导入,然后再执行。 __main__.py文件是一个包或者目录的入口程序。

17320

5.软件开发规范

项目目录结构"其实也是属于"可读性和可维护性"的范畴,我们设计一个层次清晰的目录结构,就是为了达到以下两点: 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿...所以,我认为,保持一个层次清晰的目录结构是有必要的。更何况组织一个良好的工程目录,其实是一件很简单的事儿。 ? 上面那个图片就是较好的目录结构。 二....你现在从这个start文件需要引用src文件,那么你需要手动的src的工作目录添加到sys.path中,那么有没有可能你会引用到其他的文件?...所以我们只要将这个blog项目的工作目录添加到sys.path中,这样无论这个项目中的任意一个文件引用项目中哪个文件,就都可以找到了。...我们在starts文件中已经说了,刚已启动blog文件时,我们手动blog的路径添加到sys.path中了,这就意味着,我在整个项目中的任何py文件,都可以引用到blog项目目录下面的任何目录:bin

1K30

Python 中的 if __name_

一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。...实际上在导入的时候,有一部分代码我们是希望被运行的。...__main__.py 文件python -m Python 的 -m 参数用于一个模块或者包作为一个脚本运行, __main__.py 文件则相当于是一个包的”入口程序“。...然后我们来总结一下: 1、 加上 -m 参数时会把当前工作目录添加到 sys.path 中,不加时则会把脚本所在目录添加到 sys.path 中。...后序 我试图使用长篇大论来阐述,在 Python如何理解 if __name__ == '__main__' 这个问题,不知道我有没有描述得足够的明白。

66510
领券