二十五
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()函数:将文件读取指针移动到指定位置