文件操作
"""
- 文件操作的作用
- 文件的基本操作
- 打开
- 读写
- 关闭
- 文件备份
- 文件和文件夹的操作
"""
一. 文件操作的作用
"""
把一些内容(数据)存储存放起来
可以让程序下一次执行的时候直接使用,而不必重新制作一份
"""
二. 文件的基本操作
2.1 文件操作步骤
"""
1.打开文件
2.读写等操作,可以只打开和关闭文件,不进行任何读写操作
3.关闭文件
"""
2.1.1 打开
"""
在python,使用open函数
可以打开一个已经存在的文件,或者创建一个新文件,
open(name, mode)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode:设置打开文件的模式(访问模式):只读、写入、追加等
"""
2.1.1.1 打开文件模式
2.1.1.2 快速体验
"""
注意:此时的 f 是 open函数 的文件对象
"""
f = open ( 'test.txt' , 'w' )
2.1.2 文件对象方法
"""
语法:
文件对象.write('内容')
"""
f = open ( 'test.txt' , 'w' )
f. write( 'hello world' )
f. close( )
"""
注意:
1. w 和 a 模式:如果文件不存在则创建该文件;
如果文件存在,w 模式先清空再写入
a 模式直接末尾追加
2. r 模式:如果文件不存在则报错
访问模式省略默认为 r
"""
2.1.2.2 读
read()
"""
文件对象.read(num)
num表示要从文件中读取的数据的长度(单位是字节)
如果没有传入num,那么就表示读取文件中所有的数据
"""
f = open ( 'test.txt' )
content = f. read( 13 )
print ( content)
f. close( )
readlines()
"""
readlines()可以按照行的方式把整个文件中的内容进行一次性读取
并且返回的是一个【列表】,其中每一行的数据为一个元素
"""
f = open ( 'test.txt' )
content = f. readlines( )
print ( content)
f. close( )
readline()
"""
readline()一次读取一行内容
"""
f = open ( 'test.txt' )
content = f. readline( )
print ( f'第一行:{content}' )
content = f. readline( )
print ( f'第二行:{content}' )
f. close( )
2.1.2.3 seek()
"""
用来移动文件指针
语法:
文件对象.seek(偏移量, 起始位置)
起始位置: 0:文件开头
1:当前位置
2:文件结尾
"""
f = open ( 'test.txt' , 'r+' )
f. seek( 0 , 2 )
content = f. read( )
print ( content)
f. close( )
2.1.3 关闭
"""
文件对象.close()
"""
三. 文件备份
"""
需求:用户输入当前目录下任意文件名,程序完成对该文件的备份功能
备份文件名为xx[备份]后缀,例如:test[备份].txt
"""
3.1 步骤
"""
1.接收用户输入的文件名
2.规划备份文件名
3.备份文件写入数据
"""
3.2 代码实现
1.接收用户输入目标文件名
old_name = input ( '请输入您要备份的文件名:' )
2.规划备份文件名
2.1 提取文件后缀点的下标
index = old_name. rfind( '.' )
print ( index)
print ( old_name[ : index] )
2.2 组织新文件名 旧文件名 + [备份] + 后缀
new_name = old_name[ : index] + '[备份]' + old_name[ index: ]
print ( new_name)
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 :
break
new_f. write( con)
3.3关闭文件
old_f. close( )
new_f. close( )
3.3 限制只有有效的文件名才能备份
old_name = input ( '请输入您要备份的文件名:' )
index = old_name. rfind( '.' )
if index > 0 :
postfix = old_name[ index: ]
new_name = old_name[ : index] + '[备份]' + postfix
old_f = open ( old_name, 'rb' )
new_f = open ( new_name, 'wb' )
while True :
con = old_f. read( 1024 )
if len ( con) == 0 :
break
new_f. write( con)
old_f. close( )
new_f. close( )
四. 文件和文件夹的操作
"""
在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下:
1.导入os模块
import os
2.使用os模块相关功能
os.函数名()
"""
import os
4.1 文件重命名
os. rename( '目标文件名' , '新文件名' )
4.2 删除文件
os. remove( '目标文件名' )
4.3 创建文件夹
os. mkdir( '文件夹名字' )
4.4 删除文件夹
os. rmdir( '文件夹名字' )
4.5 返回当前文件所在目录路径
os. getcwd( )
print ( os. getcwd( ) )
4.6 改变目录路径
os. chdir( '目录' )
4.7 获取当前文件夹下目录列表
os. listdir( '目录' )
五.应用案例
"""
需求:批量修改文件名,既可添加指定字符串,又能删除指定字符串。
步骤:
1.设置添加删除字符串的的标识
2.获取指定目录的所有文件
3.将原有文件名添加 / 删除指定字符串,构造新名字
4.os.rename()重命名
"""
import os
flag = 2
file_list = os. listdir( )
print ( file_list)
for name in file_list:
if flag == 1 :
new_name = 'Python-' + name
elif flag == 2 :
num = len ( 'Python-' )
new_name = name[ num: ]
print ( new_name)
os. rename( name, new_name)