Python学习笔记(十五):文件操作

1 文件操作

1.1 文件操作的步骤

  1. 打开⽂件
  2. 读写等操作
  3. 关闭⽂件
'''
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.txt内容
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)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值