发布信息

Python 文件操作:从原理到实践,探索文件编码与解码的奥秘

作者:软荐小编      2024-06-14 10:08:20     139

二十五

Python文件操作

Python文件操作

Linux系统是一个基于文件的操作系统,手机的操作系统也是充斥着文件,很多软件程序都是以文件的形式保存的,不同的程序编写的文件格式也不同,Python编程编写的程序都是以.py格式结尾的,生活中常用的各种格式的文件也很多,音乐格式文件有.mp3、.wav等。理论上来说,所有格式的文件最终都是以二进制的形式存储在计算机中的,只是文件的编码方式不同,所以一些特定格式的文件只能用特定的软件才能打开,否则就算打开了,要么看到乱码,要么看不懂。这意味着,如果你想自己创造一种新的文件格式,也不是不可能,你只需要对它进行编码和解码就可以了。

假设从某个网站获取一些数据文件,格式如下:

黄忠:射手

孙尚香:弓箭手

小乔:法师

周瑜:法师

關羽:上

吕布:顶级

大乔:支援

张飞:支援

刘备:打野

诸葛亮:打野

我如何将这些数据插入到文件中以便保存?

知识和技能目标:

1.掌握Python文件的读写方法

2. 能够使用 Python 编程读写文件

3. 在某些场景下可以使用文件来保存和获取内容

质量目标:

1. 能够体验文件的便捷

2.养成良好的文件管理习惯

数据写入文件

1. 数据写入和查看示例

#python eg25_1.py

f = 打开(“eg25_1.txt”手机有什么编写html的软件'w')

f.write("""黄忠:弓箭手

孙尚香:弓箭手

小乔:法师

周瑜:法师

關羽:上

吕布:顶级

大乔:支援

张飞:支援

刘备:打野

诸葛亮:丛林之王”””

f.关闭()

#代码结束

上述代码保存运行后,会在代码同一路径下生成一个名为eg25_1.txt的文本文件,打开后里面的内容就是保存的数据。

使用原生HTML文件查看器打开,详细信息如下:

当然,我们可以用其他软件打开,也可以用Python代码打开查看:

#python eg25_2.py

f = 打开(“eg25_1.txt”,“r”)

f.关闭()

打印(f.read())

#eg25_2.py 结束

最后屏幕上打印的内容和写入的数据是一致的。(小贴士:在手机pydroid软件中使用基于文件编程时,可以不保存就运行代码,但是这里如果不保存就运行代码,会提示错误信息说文件不存在。主要原因是代码中省略了路径,而默认输出文件或者读取文件时文件的位置和代码保存的位置一致。)

Python 文件操作函数

代码运行步骤

1. open() 函数

上面的代码编程用到了一些函数,接下来就这些函数的作用进行说明。

open() 方法用于打开文件并返回文件对象。

在处理文件的过程中需要用到该函数,如果文件无法打开,则会抛出OSError。

注意:使用open()方法的时候一定要关闭文件对象,即调用close()方法。

open() 函数的常见形式接受两个参数:文件名(file)和模式(mode)。

打开(文件,模式='r')

其中:file为文件名,mode为操作模式,若省略文件名则默认为当前代码路径,若省略操作模式则默认为文本模式。

文件路径有两种,绝对路径和相对路径,都是文件的位置。

常用的模式有以下几种:

tText 模式(默认)。

x 写入模式,创建新文件,若文件已经存在则报错。

b二进制模式。

+打开一个文件进行更新(读写)。

r以只读方式打开文件。文件指针将放置在文件的开头。这是默认模式。

rb 以二进制格式打开文件以供只读。文件指针将放在文件开头。这是默认模式。一般用于非文本文件,如图像。

r+ 打开文件进行读写。文件指针将放置在文件的开头。

rb+ 以二进制格式打开文件进行读写。文件指针将放在文件的开头。一般用于图片等非文本文件。

w 以只写方式打开一个文件手机有什么编写html的软件,如果文件已经存在,则从头打开并编辑,即删除原有内容,如果文件不存在,则创建一个新文件。

wb 以二进制格式打开文件,仅供写入。若文件已存在,则从头打开并编辑,即删除原有内容。若文件不存在,则创建新文件。一般用于图片等非文本文件。

w+ 打开一个文件进行读写,如果文件已经存在,则从头打开并编辑,即删除原有内容,如果文件不存在,则创建一个新文件。

wb+ 以二进制格式打开文件进行读写,若文件已存在则从头打开并编辑,即原有内容会被删除,若文件不存在则新建一个文件。一般用于图片等非文本文件。

a打开一个文件进行追加。如果文件已经存在,文件指针将放在文件末尾。也就是说,新内容将写入现有内容之后。如果文件不存在,则创建一个新文件进行写入。

ab 以二进制格式打开一个文件进行追加,如果文件已经存在,则文件指针会放在文件末尾,也就是新内容会写在已有内容之后,如果文件不存在,则新建一个文件进行写入。

a+打开一个文件进行读写。如果文件已经存在,文件指针将放在文件末尾。文件将以追加模式打开。如果文件不存在,则创建一个新文件进行读写。

ab+ 以二进制格式打开一个文件,用于追加内容。如果文件已经存在,则文件指针将放在文件末尾。如果文件不存在,则创建一个新文件供读写。

2. close() 函数

关闭文件。关闭之后文件就不能再被读写了。文件用完之后必须关闭,因为文件对象会占用操作系统的资源,而且操作系统能同时打开的文件数量也是有限的。

Python引入了with语句来自动为我们调用close()方法,例如:

#python eg25_3.py

使用 open('eg25_1.txt', 'r') 作为 f:

打印(f.read())

#结尾

eg25_3.py的运行效果和eg25_2.py一样,都是将写入的内容打印出来。同样,在写入文件内容时,只需要在open函数中修改一下模式即可。

3. read() 函数

如果文件较小,最方便的方式是使用 read() 一次性读取;如果不确定文件大小,则多次调用 read(size) 更安全;如果是配置文件,最方便的方式是调用 readlines()。例如:

#python eg25_4.py

f = 打开(“eg25_1.txt”,“r”)

对于 f.readlines() 中的行:

print(line.strip()) # 删除末尾的 '\n'

#结尾

该代码的输出与上面的代码相同。

4. write() 函数

该函数用于将字符串写入文件,并返回写入的字符长度。在文件关闭或缓冲区刷新之前,字符串内容保存在缓冲区中,在文件中看不到写入的内容。

如果使用模式b打开文件,那么在写入文件内容时必须使用encode方法将str(参数)转换为字节。

5.其他相关功能

1、flush()函数:刷新文件内部缓冲区,将内部缓冲区的数据立即写入文件而不是被动等待输出缓冲区写入。

2. seek()函数:将文件读取指针移动到指定位置

相关内容 查看全部