打开文件
open(name,mode)
name-文件名字符串;mode-访问模式
模式 | 说明 |
---|---|
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' |
读取文件
命令 | 说明 |
---|---|
read(size) | 从头读取,size为读取数据长度,不写默认读取全部 |
readlines(size) | 按行从头读取,读取数据存入列表,每一行的数据为一个元素 |
readline(size) | 一次读取一行内容 |
写入文件:f.write()
# 1. 打开文件
f = open('test.txt', 'w')
# 2.文件写入
f.write('hello world')
# 3. 关闭文件
f.close()
移动光标: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(目录) |
案例
import os
print(os.getcwd()) # 获取当前路径 C:UsersmyUserNamePycharmProjectsdemo
os.mkdir('文件夹') # 新建文件夹
# os.remove('文件夹') # 删除的是文件夹,报错
os.chdir('文件夹') # 切换路径
print(os.getcwd()) # 获取当前路径 C:UsersmyUserNamePycharmProjectsdemo文件夹
i = 5
while i > 0:
open('file' + str(i) + '.txt', 'w')
i -= 1
# 在文件夹下新建file1.txt~file5.txt 5个文件