Python中文件操作的知识有哪些(python,编程语言)

时间:2024-05-03 01:05:14 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    Python%E4%B8%AD%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E7%9A%84%E7%9F%A5%E8%AF%86%E6%9C%89%E5%93%AA%E4%BA%9B

文件主要分为读文件,写文件,读写文件,写读文件.....

首先我们来说只读文件

我们先看下绝对路径下的读文件:

open(1,2,3):打开文件,open()里面的第一个参数是路径的意思,你存储的文件绝对路径,里面第二个参数是模式,‘r’在这里的意思是只读模式,里面的

第三个参数encoding()是编码方式,一般默认的都是 utf-8 ,因为python文件传输存储的编码格式都是 utf -8。

close()  : 关闭文件,我们在最后都要加上close(),如果不加,程序会一直执行,占用内存空间

read()   :  只读,读取文件的内容

我们在看下相对路径下的读文件

我们不难看出相对路径和绝对路径的代码基本上来说是差不多的,有差别的只是open()的一个参数,路径,路径被换成了相对路径。在做程序时,我们使用的相对路径的频率远远高于绝对路径。所以我们以后默认使用相对路径,也希望大家以后也使用相对路径,少用或不用绝对路径,因为绝对路径一旦改变文件的位置,会找不到,会导致我们的程序报错。、

说完了只读文件,下面来说只写文件(写文件我们也可以称创建文件):

相对于只读文件,我们来对比的来看只写文件,有差别的时open()的第二个参数,mode 由以前的 ‘r’ 换成了 ‘w’. 我们可以看下,执行完此程序的源文件

对于只写文件,我们要来讲述一个知识点,open()的一个参数,路径。由于是写文件,所以存在文件的是否存在,如果文件不存在,就好说了,我们直接执行write(),把咱们要写的文件直接添加的路径下的文件就可以了,那么如果我们要写的文件之前就存在了呢,并且之前由数据了呢?我们怎么办。我们来看下如下代码:

我们不难发现当我们往 1 这个文件里存储 ‘hello’ 以后,我们再存储‘hi’,源文件只剩 ‘hi’ 这个字符里,所以我们得出:对于写,没有此文件就会创建文件,如果有文件,就会把源文件内容删除,再写新的内容(覆盖)。

讲述了只读文件和只写文件,我们对文件有了一些大概的了解,下面我们来说bytes类型的只读和只写文件。下面来看下代码:

下面我首先来说下bytes类型,bytes类型是以 utf-8 的编码方式编码的一种类型,那么我们为什么用bytes ? 我们在刚才学习的只读和只写,只能读取和写入一些文本信息,在我们的生活中,肯定不可能都只是文本,应该也会大量浏览图片或者音频等其他的方式,那么bytes的作用就来了,它是用于非文字类的文件上传和下载时使用。

首先说下bytes类型的只读文件,首先open()第三个三个参数被取消了,不再用编码(encoding),它是以什么方式存储,就打开什么方式。

最后我们说下read(),我们知道,content的数据类型读取的是bytes类型,但是打印出来content却是str, 那么问题来了,(因为str采用的是Unicode的编码方式,而我们上传下载和存储的bytes编码方式是utf-8,但是却打印出来了字符串,) 这是为什么呢?

是read() , 隐藏了 bytes -> str

下面说下bytes类型的只写文件,同样open()第三个三个参数被取消了,不再用编码(encoding),但是相对于之前的只写文件却出现了一些差异,我们在write()里面进行了编码的转化,eg.

很多人会问了,为什么这段代码什么意思?为什么这样写呢?

其实还是那个意思,'hello',众所周知,它是str类型,str是什么编码方式?Unicode吧,但是在python中,上传下载不允许直接使用Unicode,默认支持的是‘utf-8’,同时encode()使str的方法,所以在这个位置进行修改编码方式

讲完了只写文件,很多人就会问博主了,我们写入只能覆盖,可是这样始终只能存一个值啊,我们能不能存多份值呢,有什么方法吗?比如说我们列表的append()方法.......,其实我们文件也是有追加的:

相对于只写的代码,我们可以看出,mode = 'a' ,它有以前的‘w’变成了‘a’,当然功能也随之改变,它是追加的意思,相当于列表的append()方法。(在之后我们就不具体说明bytes类型了,因为意思和之前所描述的只读和只写差不多,所以在之后就不进行过多的描述了。)

那么我们很多人就会有疑问了,问什么‘a’能添加而‘w’却只能覆盖呢?在这里先大概说下,是光标的原因。

文件的读写:(只能进行一次读写)

文件的追加写读:

下面来介绍文件的方法:

在文件中,open()我们还有另外一种写法,比较常用,以后我们大多用这个写法:

这个写法是不用写close()的。

最后我介绍下断点续传的问题:

最后留一个小题:

通过文件实现,之前做过的三次验证用户登陆:

本文:Python中文件操作的知识有哪些的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:python中使输出不换行的方法下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18