fwrite写入文件乱码_你真的会用Python进行文件操作吗?建议收藏备用

当我们python程序执行完毕后,所有存储在内存中的数据全部会丢失,如果需要将程序运行结果持久的保存下来,就需要通过文件来进行保存数据。

文件按照存储的种类可以分为:文本文件和二进制文件。

文件是以字符编码的方式进行存储;而二进制文件就是以二进制格式存储,将内存中的数据原封不动的存储到文件中,适用于非字符为主的数据,如图片、视频等是以二进制方式进行保存,如果用记事本打开这类文件,我们会看到乱码。

文件的操作主要包含:文件的创建、读取、写入、复制和删除等常用操作。

Python中文件创建,读取,写入和关闭主要通过open函数来实现。

1、创建一个文件

307bcb9d3aff8f2a187a1033481a34d1.png

文件的创建

2、读取文件内容

cce7e2920d1d1186df15db01791654e2.png

文件的读取

如果一个文件超过4G,如果尝试一次全部加载,可能造成计算机瘫痪,因此如果文件太大,我们可以在文件对象的read方法中指定一次读取的字符串

5ba3bf8519cc6410d30a0a18d0256215.png

文件对象的其他读取方法:readline()和readlines()

在我的电脑D盘有一个ayong.txt文件,我向文件写入内容如下,然后进行保存。

60bc24ae2a6ceb5e2724b04b7d4485e7.png

调用一次readline就读取一行内容,如下图所示:

fd220512e1a575fec0686031466e99ce.png

调用readlines方法可一次读取所有内容并按行返回列表类型,也就是说返回的是列表类型,列表中的每个元素就是文件中的某一行。

a1c0533151dfdeead70ff5bdafb4151f.png

3、 文件关闭

文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开文件数量也是有限的,通过调用文件对象的close方法关闭文件。

8ff60d81a80b5ed25f0028c5c309687a.png

如果Python读取文件出现乱码,可以设置指定的编码进行读取,例如读取gbk编码文件。

42101a032a7df4da36e2761dd52788c1.png

操作完文件都需要去关闭文件有点繁琐,Python引入了with语句来自动帮我们调用close()方法。

c72d7e05d960c115e7ea1013b75204e2.png

4、 文件写入

向文件写入内容,我们可以使用"w"模式写入内容,也可以采用"a"模式写入。两者的主要区是:"w"模式会先清空原文件内容,然后在写入指定内容,而"a"模式则是在原文件内容的末尾进行追加内容。相同点在于检测到文件不存在,都会自动创建文件。

6cbfb0f5cff4d0b1786e824826157865.png
29bbb1bc317d3f64a64efd7670499713.png

注意:在w模式下和a模式下只能进行写入操作,不能进行读取操作,如果你既要写入又要读取,可以在w或a模式后添加一个"+"号,即为"a+"或"w+模式"。示例如下:

b28d9848b1f0ddf0d7f39e6c0f653493.png

文件读取或写入是根据文件的游标指定位置开始操作,执行写操作后,游标会指向写入内容的末尾,此时如果你执行读取操作,会从文件末尾读取就什么也读不到,所有调用文件对象的seek方法使游标跳转到文件开头,参数0表示从文件开头的第0个字符开始操作。

5、 删除文件

删除文件,需要使用os模块中的remove方法实现文件的删除操作。

c3445c5b074da20099797ecc1a010574.png

6、 复制一个文件

如果将文件复制一份到其它地方。示例代码如下:

e4b4fc4d419696128ddfad185c3d4df8.png

7、 读取一个二进制文件

读取二进制文件,图片文件就是一个二进制形式文件,读取的时候将模式改为rb模式。示例代码如下:

b080afc8006a740777065850d690a7fc.png

以上是python常用的文件操作,老铁们喜欢的话,帮忙点个赞!有你们的支持,勇哥会更加努力!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值