文件操作
一、文件的介绍
- 定义:用来存储某些内容的容器。
- 作用:把一些必要的东西或数据存放起来,等需要用到的时候可以直接拿出来使用
- 使用步骤:
1)打开
语法:open(文件名,访问模式)
r w a r+ w+ a+ rb wb ab rb+ wb+ ab+
2)读写
3)关闭
语法:close() - 访问模式(最常用):
r 以只读方式打开文件。文件的指针将会放在文件的开头,默认模式。
w 打开一个文件只用于写入。如果文件已经存在,那么覆盖;如果文件不存在,则创建。
a 打开一个文件用于追加。如果文件存在,那么在文件结尾追加内容;如果文件不存在,则创建。
rb 以二进制格式打开一个文件只用于读取。
wb 以二进制格式打开一个文件只用于写入。
二、文件的读写
- 写数据
用write()函数,如果在文件中写中文,需要用参数encoding=‘utf-8’
write(filename,mode,encoding='')
f=open('b.txt','a',encoding='utf-8')
f.write('\nhello world\n') #\n换行
f.write('hello python\n')
f.write('你好,我在学习Python\n')
f.writelines('你好') #以行写入
f.close()
- 读数据
read(num):当使用read()进行读取数据时,那么返回整个内容,如果name(num),那么读取num个字节,下一次读取从上一次读取的末尾读取。 - 制作文件的备份
任务描述:
1)文件的复制
f1=open('a.txt','r',encoding='utf-8')
f2=open('c.txt','w',encoding='utf-8')
content=f1.readlines()
for line in content:
f2.write(line)
f2.close()
f1.close()
2)输入文件名,程序自动备份
old_filename=input('请输入需要备份的文件名:')
f=open(old_filename,'r',encoding='utf-8')
a=old_filename.find('.')
new_filename=old_filename[0:a]+'_bat'+old_filename[a:]
f2=open(new_filename,'w',encoding='utf-8')
for line in f.readlines():
f2.write(line)
f2.close()
f.close()
- 文件的定位读写
获取当前读写的位置:tell()
f=open('a.txt','r',encoding='utf-8')
content=f.read(5)
print('读取的内容:%s'%content)
position=f.tell()
print('当前位置:%d'%position)
因为有换行,所以当前位置输出三个字母
定位到某个位置:seek()、seek(offset,from)
offset:偏移量
from:方向
0:表示文件开头
1:表示当前位置
2:表示文件末尾
如果在写的模式下:定位到某个位置进行覆盖写
如果在读的模式下:定位到某个位置开始读取字节
f=open('a.txt','w',encoding='utf-8')
f.seek(5,0) #从第0个定位到5
f.write('今天天气真好')
f.close()
覆盖了之前的内容
f=open('a_bat.txt','r+',encoding='utf-8')
f.seek(5,0) #从第0个定位到5
f.write('今天天气真好')
content=f.read(5)
print(content)
f.close()
三、文件的重命名与删除
- 文件重命名
os模块中的rename()可以完成对文件重命名的操作
语法:
rename(需要修改的文件名,新的文件名)
import os
os.rename('a.txt','a_1.txt')
- .删除文件
语法:
remove(需要删除的文件名)
#删除
os.remove('b.txt')
- 其他操作
实际开发中,有时需要用程序的方式对文件夹进行一定的操作,比如创建、删除等.
对文件操作需要os模块一样,如果要操作文件夹,同样需要os模块
1)创建文件夹:mkdir(directory)
#当前目录下创建文件夹
import os
os.mkdir('test')
2)获取当前目录:getcwd()
#获取当前目录
import os
cwd=os.getcwd()
print(cwd)
3)获取某个路径下的所有文件/文件夹:listdir()
import os
path=os.listdir()
print(path)
4.删除当前文件夹:rmdir()
#删除文件夹
import os
os.rmdir('test')