文件的作用
将数据长期保存下来,在需要的时候使用
思考:文件操作包含什么?
python 写文件?答:打开、关闭、读、写、复制…
思考:文件操作的的作用是什么?
答:读取内容、写入内容、备份内容…
总结:文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。
在 计算机 中要操作文件的套路非常固定,一共包含三个步骤:
Python文件?注意:可以只打开和关闭文件,不进行任何读写操作。
在 Python
中要操作文件需要记住 1 个函数和 3 个方法
open
函数的第一个参数是要打开的文件名(文件名区分大小写)
read
方法可以一次性 读入 并 返回 文件的 所有内容
close
方法负责 关闭文件
python保存文件、注意:read
方法执行后,会把 文件指针 移动到 文件的末尾
提示
序号 | 函数/方法 | 说明 |
---|---|---|
01 | open | 打开文件,并且返回文件操作对象 |
02 | read | 将文件内容读取到内存 |
03 | write | 将指定内容写入文件 |
04 | close | 关闭文件 |
open
函数负责打开文件,并且返回文件对象read
/write
/close
三个方法都需要通过 文件对象 来调用open
函数默认以 只读方式 打开文件,并且返回文件对象语法如下:
f = open("文件名", "访问方式")
访问方式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。如果文件不存在,抛出异常 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 以读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 以只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 以读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 以追加方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 以读写方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
提示
频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以 只读、只写 的方式来操作文件
python文件的后缀名,示例
f = open('test.txt', 'w')
注意:此时的
f
是open
函数的文件对象。
文件对象.write('内容')
# 1. 打开文件
f = open('test.txt', 'w')# 2.文件写入
f.write('hello world')# 3. 关闭文件
f.close()
注意:
w
和a
模式:如果文件不存在则创建该文件;如果文件存在,w
模式先清空再写入,a
模式直接末尾追加。r
模式:如果文件不存在则报错。
read
方法默认会把文件的 所有内容 一次性读取到内存read
方法执行后,会把 文件指针 移动到 文件的末尾文件对象.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
# 1. 打开 - 文件名需要注意大小写
file = open("README")# 2. 读取
text = file.read()
print(text)# 3. 关闭
file.close()
readline()
python读取csv文件、readline
方法可以一次读取一行内容
方法执行后,会把 文件指针 移动到下一行,准备再次读取。
f = open('test.txt')content = f.readline()
print(f'第一行:{content}')content = f.readline()
print(f'第二行:{content}')# 关闭文件
f.close()
第一行:hello world
第二行:abcdefg
读取大文件的正确姿势
# 打开文件
file = open("README")while True:# 读取一行内容text = file.readline()# 判断是否读到内容if not text:break# 每读取一行的末尾已经有了一个 `\n`print(text, end="")# 关闭文件
file.close()
f = open('test.txt')
content = f.readlines()# ['hello world\n', 'abcdefg\n', 'aaa\n', 'bbb\n', 'ccc']
print(content)# 关闭文件
f.close()
python编程,文件指针(知道)
read
方法后,文件指针 会移动到 读取内容的末尾 思考
read
方法,读取了所有内容,那么再次调用 read
方法,还能够获得到内容吗?答案
作用:用来移动文件指针。
语法如下:
文件对象.seek(偏移量, 起始位置)
python3,起始位置:
- 0:文件开头
- 1:当前位置
- 2:文件结尾
文件对象.close()
需求:用户输入当前目录下任意文件名,程序完成对该文件的备份功能(备份文件名为xx[备份]后缀,例如:test[备份].txt)。
old_name = input('请输入您要备份的文件名:')
规划备份文件名
2.1 提取目标文件后缀
2.2 组织备份的文件名,xx[备份]后缀
# 2.1 提取文件后缀点的下标
index = old_name.rfind('.')# print(index) # 后缀中.的下标# print(old_name[:index]) # 源文件名(无后缀)# 2.2 组织新文件名 旧文件名 + [备份] + 后缀
# [:index]切片,从开始到.之前的索引值
new_name = old_name[:index] + '[备份]' + old_name[index:]# 打印新文件名(带后缀)
# print(new_name)
python文件怎么运行?备份文件写入数据
3.1 打开源文件 和 备份文件
3.2 将源文件数据写入备份文件
3.3 关闭文件
# 3.1 打开文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')# 3.2 将源文件数据写入备份文件
# 如果不确定目标文件大小,循环读取写入,当读取出来的数据没有了终止循环
while True:con = old_f.read(1024)if len(con) == 0:breaknew_f.write(con)# 3.3 关闭文件
old_f.close()
new_f.close()
如果用户输入.txt
,这是一个无效文件,程序如何更改才能限制只有有效的文件名才能备份?
Python程序文件?答:添加条件判断即可。
old_name = input('请输入您要备份的文件名:')index = old_name.rfind('.')if index > 0:postfix = old_name[index:]new_name = old_name[:index] + '[备份]' + postfixold_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')while True:con = old_f.read(1024)if len(con) == 0:breaknew_f.write(con)old_f.close()
new_f.close()
小文件复制
# 1. 打开文件
file_read = open("README")
file_write = open("README[复件]", "w")# 2. 读取并写入文件
text = file_read.read()
file_write.write(text)# 3. 关闭文件
file_read.close()
file_write.close()
大文件复制
# 1. 打开文件
file_read = open("README")
file_write = open("README[复件]", "w")# 2. 读取并写入文件
while True:# 每次读取一行text = file_read.readline()# 判断是否读取到内容if not text:breakfile_write.write(text)# 3. 关闭文件
file_read.close()
file_write.close()
在 终端 / 文件浏览器、 中可以执行常规的 文件 / 目录 管理操作,例如:
在 Python
中,如果希望通过程序实现上述功能,需要导入 os
模块。具体步骤如下:
import os
os
模块相关功能os.函数名()
序号 | 方法名 | 说明 | 示例 |
---|---|---|---|
01 | rename | 重命名文件 | os.rename(源文件名, 目标文件名) |
02 | remove | 删除文件 | os.remove(文件名) |
序号 | 方法名 | 说明 | 示例 |
---|---|---|---|
01 | listdir | 获取目录列表 | os.listdir(目录名) |
02 | mkdir | 创建目录(文件夹) | os.mkdir(目录名) |
03 | rmdir | 删除目录 | os.rmdir(目录名) |
04 | getcwd | 获取当前目录(目录路径) | os.getcwd() |
05 | chdir | 修改工作目录路径 | os.chdir(目标目录) |
06 | path.isdir | 判断是否是文件 | os.path.isdir(文件路径) |
python怎么打开文件?提示:文件或者目录操作都支持 相对路径 和 绝对路径
# 需求:在aa里面创建bb文件夹: 1. 切换目录到aa,2创建bb
import os
os.chdir('aa')
os.mkdir('bb')
需求:批量修改文件名,既可添加指定字符串,又能删除指定字符串。
import os# 设置重命名标识:如果为1则添加指定字符,flag取值为2则删除指定字符
flag = 1# 获取指定目录
dir_name = './'# 获取指定目录的文件列表
file_list = os.listdir(dir_name)
# print(file_list)# 遍历文件列表内的文件
for name in file_list:# 添加指定字符if flag == 1:new_name = 'Python-' + name# 删除指定字符elif flag == 2:num = len('Python-') # 7new_name = name[num:]# 打印新文件名,测试程序正确性print(new_name)# 重命名os.rename(dir_name+name, dir_name+new_name)
文件操作步骤
文件对象 = open(目标文件, 访问模式)
操作
文件对象.read()
文件对象.readlines()
文件对象.readline()
文件对象.write()
关闭
文件对象.close()
python文件读写方法有哪些。主访问模式
文件和文件夹操作
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态