一、文件的基本操作
1、打开文件
- open(name,mode)
- name-文件名字符串;mode-访问模式
P.s:访问模式
r |
只读。文件指针位于文件开头,默认模式 P.s:打开不存在文件报错 |
rb | 二进制打开文件用于只读,文件指针位于文件开头 |
r+ |
读写,文件指针位于文件开头 P.s:r+打开不存在的文件报错,同r操作 |
rb+ | 二进制打开文件用于读写,文件指针位于文件开头 |
w |
仅写入,文件指针位于文件开头。 如文件已存在,从开头编辑,会覆盖原内容即原内容删除;如文件不存在创建新文件 |
wb |
二进制打开文件用于写入。 规则同'w'。 |
w+ |
读写。 写规则同‘w' P.s: w+打开文件原内容删除,未写入时直接读取为空,因为w操作会覆盖原内容 |
wb+ |
二进制打开文件用于读写 规则同'w+' |
a |
追加,文件指针位于文件结尾。 如文件已存在,从原内容后添加;如文件不存在创建新文件 |
ab | 二进制打开文件用于追加,其他同'a' |
a+ |
二进制打开文件用于读写,写规则同'a' P.s:a+未写入时直接读取为空,因为a操作的文件在文件结尾 |
ab+ | 二进制打开文件用于读写,写规则同'a' |
2、读取文件
read(num) |
从头读取,num为读取数据长度,不写默认读取全部 f = open('test.txt', 'r')
content = f.read(7) # P.s:换行占据一个字符
print(content)
"""
aaaaa
b
"""
f.close()
|
readlines() |
按行从头读取,读取数据存入列表,每一行的数据为一个元素 f = open('test.txt', 'r')
content = f.readlines()
print(content) # ['aaaaa\n', 'bbbbb\n', 'ccccc']
f.close()
|
readline() |
一次读取一行内容 f = open('test.txt', 'r')
content = f.readline()
print(content) # aaaaa
content = f.readline()
print(content) # bbbbb
f.close()
|
3、写入文件:f.write()
4、移动光标:f.seek(偏移量,起始位置)
起始位置中:
- 0:文件开头
- 1:当前位置
- 2:文件结尾
f = open('test.txt','r') f.seek(2,0) con=f.read() print(con) ''' aaa bbbbb ccccc ''' f.seek(0) # seek(0)为seek(0,0)简写 con=f.read() print(con) ''' aaaaa bbbbb ccccc ''' f.close()
二、应用案例-备份文件:
# 用户输入 old_name = input('请输入需要备份的文件名:') # 文件名截取名字和后缀,更改为新名字 index = old_name.rfind('.') if index <= 0: print('文件名格式错误!') else: new_name = old_name[:index]+'_副本'+old_name[index:] # 文件写入 old_file = open(old_name, 'rb') new_file = open(new_name, 'wb') while True: content = old_file.read(1024) if len(content)==0: print('备份成功!') break new_file.write(content) new_file.close() old_file.close()
三、文件和文件夹的操作:
1、前提:导入os模块
import os
2、函数
重命名文件、文件夹 | os.rename(目标文件名,新文件名) |
删除文件 | os.remove(目标文件名) |
创建文件夹 | os.mkdir(文件夹名字) |
删除文件夹 | os.rmdir(文件夹名字) |
获取当前路径 | os.getcwd() |
改变默认路径 | os.chdir(路径) |
获取目录下文件列表 | os.listdir(目录) |
3、应用案例
import os print(os.getcwd()) # 获取当前路径 C:\Users\myUserName\PycharmProjects\demo os.mkdir('文件夹') # 新建文件夹 # os.remove('文件夹') # 删除的是文件夹,报错 os.chdir('文件夹') # 切换路径 print(os.getcwd()) # 获取当前路径 C:\Users\myUserName\PycharmProjects\demo\文件夹 i = 5 while i > 0: open('file' + str(i) + '.txt', 'w') i -= 1 # 在文件夹下新建file1.txt~file5.txt 5个文件