这里写目录标题
1 文件操作
1.1 文件操作的步骤
- 打开⽂件
- 读写等操作
- 关闭⽂件
'''
open(文件路径,访问模式),其中访问模式为r只读、w写⼊、a追加等
'''
txt=open('text.txt','w')
txt.write("hello wolrd")
txt.close()
运行后当前目录将多一个text.txt文件,内容为hello wolrd。
1.2 打开⽂件模式
如果省略访问模式,则访问模式默认为r。
1.2.1 只读模式r
# 'r' 只读,不能写入,如果文件不存在则报错
f=open('text.txt', 'r')
content=f.read()
print(content)
#f.write('morning') 访问模式为读,不可以写入
f.close()
hello wolrd
1.2.2 写入模式w
当进行写入的文件不存在,将自动创建;若存在,则清空原内容,再进行写入。
f=open('text.txt','w')
f.write('good morning')
#不能读
# con=f.read()
# print(con)
f.close()
此时text.txt中的内容为good morning
1.2.3 追加模式a
'''
a访问模式将在原有内容的基础上,追加内容
'''
f=open('text.txt','a')
f.write(' my dear')
f.close()
此时text.txt中的内容为 good morning my dear。
1.3 读取文件内容
1.3.1 read方法
⽂件对象.read(num)
num表示要从⽂件中读取的数据的⻓度(单位是字节),如果没有传⼊num,那么就表示读取⽂件中所有的数据。
text.text中的内容,以下代码将读取前5个字节内容。
f=open('text.txt','r')
content=f.read(5)
print(content)
f.close()
good (前面有一个空格)
1.3.2 getline方法
readlines可以按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素。
通过以下代码创建,有多行文字的txt文件。
f=open('line_text.txt','w')
for i in range(4):
f.write('今天是第'+str(i)+'天\n')
f.close()
再使用readline方法读取line_text.txt内容。
f=open('line_text.txt','r')
line=f.readline()
print(line)
line=f.readline()
print(line)
今天是第0天
今天是第1天
可以发现,第二次使用getline方法时,自动读取了第二行的内容,也就是光标自动进入了下一行。
1.3.3 getlines方法
readlines可以按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素。
f=open('line_text.txt','r')
content=f.readlines()
print(content)
f.close()
['今天是第0天\n', '今天是第1天\n', '今天是第2天\n', '今天是第3天\n']
1.3.4 seek()方法
作⽤:⽤来移动⽂件指针。
⽂件对象.seek(偏移量, 起始位置)
起始位置:
0:⽂件开头
1:当前位置
2:⽂件结尾
1.4 文件备份
需求:输⼊当前⽬录下任意⽂件名,程序完成对该⽂件的备份功能(备份⽂件名为xx[备份]后缀,例如:输入music.mp3,备份为music[备份].txt)。
'''
备份文件
'''
#创建需要备份的名字
fileName=input("请输入文件名:\n")
print(fileName)
dotIndex=fileName.rfind('.')
old_name= fileName[:dotIndex]
file_type= fileName[dotIndex:]
print(f'文件名是{old_name},文件类型是{file_type}')
newName= old_name + '[备份]' + file_type
print(newName)
#读取写入文件
old_f=open(fileName,'rb')
new_f=open(newName,'wb')
while True:
#先读取一部分写入后,再进行读取,防止文件过大内存空间不够
con=old_f.read(1024)
#print(f'文件内容:{con},文件类型:{type(con)}')
if len(con)==0:
break
new_f.write(con)
old_f.close()
new_f.close()
1.5 文件和文件夹操作
在Python中⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能,具体步骤如下:
import os
1.5.1 文件重命名
os.rename(⽬标⽂件名, 新⽂件名)
1.5.2 删除⽂件
os.remove(⽬标⽂件名)
1.5.3 创建⽂件夹
os.mkdir(⽂件夹名字)
1.5.4 删除⽂件夹
os.rmdir(⽂件夹名字)
1.5.5 获取当前⽬录
os.getcwd()
1.5.6 改变操作⽬录
os.chdir(⽬录)
1.5.7 获取目录中的所有内容
os.listdir(⽬录)
1.6 应用案例
需求:批量修改⽂件名,既可添加指定字符串,⼜能删除指定字符串。
以下代码将将目录内的所有文件的名称加上python_或删除python_。
import os
file_list=os.listdir()
print(type(file_list))
#0表示增加 1表示删除
flag=1
for item in file_list:
if flag==0:
new_name="python_"+item
elif flag==1:
#index=item.find('python_')+len('python_')
index=len('python_')
new_name=item[index:]
os.rename(item,new_name)