本文目录一览:
Python文件操作,看这篇就足够!
文件的存储方式 在计算机中,文件是以二进制的方式保存在磁盘上的文本文件和二进制文件 文本文件可以使用文本编辑软件查看本质上还是二进制文件 二进制文件保存的内容不是给人直接阅读的,而是提供给其她软件使用的二进制文件不能使用文件编辑软件查看 文件基本操作 在计算机中要操作文件一共包含三个步骤:1.打开文件2.读、写文件 读 将文件内容读入内容写 将内存内容写入文件 模式描述 t文本模式 (默认)。 x写模式,新建一个文件,如果该文件已存在则会报错。 b二进制模式。 +打开一个文件进行更新(可读可写)。 U通用换行模式(不推荐)。 r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 r+打开一个文件用于读写。文件指针将会放在文件的开头。 rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 文件打开模式有很多,但是我们实际用到的就只有六种。 我们总结一下主要用到的是下面六种
模式 | 可做操作 | 若文件不存在 | 是否覆盖文件原来内容 |
---|---|---|---|
r | 只读 | 报错 | —— |
r+ | 可读、可写 | 报错 | 是 |
w | 只写 | 创建 | 是 |
w+ | 可读、可写 | 创建 | 是 |
a | 只写 | 创建 | 否,追加写 |
a+ | 可读、可写 | 创建 | 否,追加写 |
只读模式打开文件——只读(r) | |||
文件若不存在报错: | |||
读写模式打开文件——读写模式(r+) | |||
数据写入之前: | |||
数据写入之后: | |||
会替换掉相同长度的内容 | |||
文件若不存在报错: | |||
写模式打开文件——写模式(w) | |||
数据写入之前: | |||
数据写入之后: | |||
这种操作会删除原来的文件内容,重新写入Python, | |||
并且把光标放在文件最开始。 | |||
若文件不存在,系统会创建该文件夹并重新写入内容 | |||
读写模式打开文件——读写模式(w+) | |||
数据写入之前: | |||
数据写入之后: | |||
这种操作会删除原来的文件内容,重新写入Python, | |||
并且把光标放在文件最开始。 | |||
若文件不存在,系统会创建该文件夹并重新写入内容 | |||
利用这个原理所以文件写模式(w)、读写模式(w+)还可以用作删除文件内容。 | |||
因为他们整个工作原理就是把文件原来的内容删除,然后写入新的内容。 | |||
如果我们写入的内容为空,那么不就是删除文件内容。 | |||
数据写入之前: | |||
数据写入之后: | |||
写模式打开文件(追加内容)——写模式(a) | |||
数据写入之前: | |||
数据写入之后: | |||
可以看到是在原先内容的基础上在文末追加新的内容! | |||
若文件不存在,系统会创建新的文件夹并写入内容 | |||
读写模式打开文件(追加内容)——读写模式(a) | |||
数据写入之前: | |||
数据写入之后: | |||
可以看到是在原先内容的基础上在文末追加新的内容! | |||
若文件不存在,系统会创建新的文件夹并写入内容 | |||
二进制模式打开文件 | |||
我们看到了在文件打开模式中有以下模式:rb、wb……有这种带 b 的。 | |||
什么意思呢? | |||
就是用二进制的方式打开文件。 | |||
很明显,我们出现了以下错误: | |||
主要原因是因为编码的问题,可能是因为0x82这个字节在gbk编码中没有这个字符, | |||
可能原字符是两个字节,在gbk里被解析成了一个字节,导致字符不存在。 | |||
这就是我们文件打开方式需要使用二进制读取的原因。 | |||
文件操作 | |||
open 函数负责打开文件,并且返回文件对象 | |||
read /write / close 三个方法都需要通过文件对象 来调用 | |||
文件和文件夹的操作 | |||
在Python中⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能, | |||
具体步骤如下: | |||
导⼊os模块 | |||
使⽤ os 模块相关功能 |
- 文件重命名
- 删除文件
- 创建文件夹
- 删除文件夹
- 获取当前目录
- 改变默认目录
- 获取目录列表
python怎么以追加的方式写文件?
一、用Python创建一个新文件,内容是从0到9的整数, 每个数字占一行:
f = open('f.txt', 'w') # r只读,w可写,a追加
for i in range(0, 10):
f.write(str(i) + '\n')
f.close()
二、文件内容追加,从0到9的10个随机整数:
import random
f = open('f.txt', 'a')
for i in range(0, 10):
f.write(str(random.randint(0, 9)))
f.write('\n')
f.close()
三、文件内容追加,从0到9的随机整数, 10个数字一行,共10行:
import random
f = open('f.txt', 'a')
for i in range(0, 10):
for i in range(0, 10):
f.write(str(random.randint(0, 9)))
f.write('\n')
f.close()
四、把标准输出定向到文件:
import sys
sys.stdout = open("stdout.txt", "w")
急求大神指教:怎样用python在指定文件中的指定行插入一句话呢?
- 打开pycharm开发工具,在python项目中,定义列表变量b1并赋值。
- 使用列表中的方法,向列表b1的第二个位置,添加元素yhd,并打印结果。
- 保存代码并运行python文件,结果控制台出现了报错。
- 检查代码发现,本来是想用insert,结果写成了index;修改代码方法,然后保存代码。
- 再次运行python文件,结果发现yhd添加到第二个位置。
python 如何先清除文件内容,再追加写入?
顺序文件不能直接再前面追加写入,可按下列步骤,利用下述步骤来实现
- 创建一个新的文件。
- 写入要追加的数据
- 从原文件中读取数据,追加写入新文件中
- 删除原文件。
- 重新命名新文件为老文件名。