Python学习知道了这些,您可以使用Python超过99%的文件操作_shutil 异步(1)

readlines(hint = -1)返回列表中文件的所有行。可选参数hint表示如果返回的字符数超过了hint,则将不返回任何行。

在这三种方法中,read()和readlines()的内存效率较低,因为默认情况下,它们以字符串或列表形式返回完整的文件。一种更有效的内存迭代方式是使用readline()并使其停止读取,直到返回空字符串。空字符串“”表示指针到达文件末尾。
在这里插入图片描述
在编写方面,有两种方法write()和writelines()。 顾名思义,write()是写一个字符串,而writelines()是写一个字符串列表。 开发人员有责任在末尾添加\ n。
在这里插入图片描述
如果您将文本写入特殊的文件类型(例如JSON或csv),则应在文件对象顶部使用Python内置模块json或csv。
在这里插入图片描述
在这里插入图片描述
image
在文件内移动指针

当我们打开文件时,我们得到一个指向特定位置的文件处理程序。 在r和w模式下,处理程序指向文件的开头。 在一种模式下,处理程序指向文件的末尾。

tell()和seek()

当我们从文件中读取时,指针将移动到下一个读取将开始的位置,除非我们告诉指针移动。 您可以使用2种方法来做到这一点:tell()和seek()。

tell()以文件开头的字节数/字符数的形式返回指针的当前位置。seek(offset,whence = 0)将处理程序移到一个位置,offset字符距离wherece。 地点可以是:

  • 0:从文件开头
  • 1:从当前位置开始
  • 2:从文件末尾开始

在文本模式下,wherece仅应为0,偏移应≥0。
在这里插入图片描述

了解文件状态

操作系统上的文件系统可以告诉您许多有关文件的实用信息。 例如,文件的大小,创建和修改的时间。 要在Python中获取此信息,可以使用os或pathlib模块。 实际上,os和pathlib之间有很多共同之处。 pathlib是比os更面向对象的模块。

操作系统

获取完整状态的一种方法是使用os.stat(“ test.txt”)。 它返回具有许多统计信息的结果对象,例如st_size(文件大小,以字节为单位),st_atime(最新访问的时间戳),st_mtime(最新修改的时间戳)等。
在这里插入图片描述
您也可以使用os.path单独获取统计信息。
在这里插入图片描述

路径库

获取完整状态的另一种方法是使用pathlib.Path(“ text.txt”.stat())它返回与os.stat()相同的对象。
在这里插入图片描述
在以下各节中,我们将比较os和pathlib的更多方面。

复制,移动和删除文件

Python有许多内置模块来处理文件移动。 在您信任Google返回的第一个答案之前,您应该意识到,不同的模块选择会导致不同的性能。 一些模块将阻塞线程,直到文件移动完成,而其他模块则可能异步执行。

关闭

shutil是用于移动,复制和删除文件和文件夹的最著名的模块。 它提供了4种仅复制文件的方法。copy(),copy2()和copyfile()。

copy()与 copy2():copy2()与copy()非常相似。 不同之处在于copy2()还复制文件的元数据,例如最近的访问时间,最近的修改时间。 但是根据Python文档,由于操作系统的限制,即使copy2()也无法复制所有元数据。
在这里插入图片描述
在这里插入图片描述
copy()与 copyfile():copy()将新文件的权限设置为与原始文件相同,但是copyfile()不会复制其权限模式。 其次,copy()的目标可以是目录。 如果存在同名文件,则将其覆盖,否则,将创建一个新文件。 但是,copyfile()的目的地必须是目标文件名。
在这里插入图片描述
在这里插入图片描述

os

os模块具有一个system()函数,允许您在子shell中执行命令。 您需要将该命令作为参数传递给system()。 这与在操作系统上执行的命令具有相同的效果。 为了移动和删除文件,您还可以在os模块中使用专用功能。
在这里插入图片描述

异步复制/移动文件

到目前为止,解决方案始终是同步的,这意味着如果文件很大并且需要更多时间移动,则程序可能会被阻止。 如果要使程序异步,则可以使用threading,multiprocessing或subprocess模块使文件操作在单独的线程或单独的进程中运行。
在这里插入图片描述
搜索文件

复制和移动文件后,您可能需要搜索与特定模式匹配的文件名。 Python提供了许多内置函数供您选择。

glob

glob模块根据Unix shell使用的规则查找与指定模式匹配的所有路径名。 它支持通配符,例如*?。 []。

glob.glob(“ *。csv”)搜索当前目录中所有具有csv扩展名的文件。 使用glob模块,还可以在子目录中搜索文件。
在这里插入图片描述

最后:关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

点此免费领取:CSDN大礼包:《python学习路线&全套学习资料》免费分享

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、精品Python学习书籍

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值