python对文件的处理
对于文件的处理 一般包含3步(打开,操作,关闭)
- 1.打开文件:
使用open函数打开一个已经存在的文件,或者创建一个新的文件。
open(“文件名”,“访问模式”)
f=open(‘test.txt’,‘w’)
打开方式的模式
2.关闭文件
close()
#打开或新建一个文件,文件名为:test.txt
f=open(‘test.txt’,‘w’)
#关闭这个文件f.close()
- 文件的操作—读写
(1):写数据:write()
f=open(‘test.txt’,‘w’)
f.write(‘hello world, I am here!’)
f.close()
注意:
如果文件不存在那么创建,如果存在那么先清空,然后写数据。
(2) :读数据(read)
使用read(num)可以从文件中读取数据返回一个字符串,num表示要从文件中读取的数据的长度,
如果没有传入num,默认为所有数据
f=open(‘test.txt’,‘r’)
content=f.read(5)
print(content)
print(type(content))
content=f.read()
print(content)
f.close()
注意:
如果open是打开一个文件,那么可以不用写打开的模式,即只写open(‘test.txt’)
如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的。
其他的读数据方式:
***readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
f=open(‘test.txt’,‘r’)
content=f.readlines()
print(type(content))
i=1
f.close()
***readline 每次只读一行
f=open(‘test.txt’,‘r’)
content=f.readline()
print(‘1:%s’%content)
…
f.close()
补充:
使用with open() as…读取文件
with open(‘test001.txt’,‘r’) as f:
for line in f:
print(line)
若想要文件想要对汉字进行操作:在访问模式后面加 encoding=”utf-8”
4.制作文件的备份
5. 对文件的一些相关操作:
(1):光标位置:
获取当前读写的位置:f.tell()
定位到某个位置:f.seek(offset,from)
offset:偏移量
from:方向
0:表示文件开头
1:表示当前位置
2:表示文件末尾
注意:只能以字节码方式读写,才可以使用1和2
(2)文件的相关操作:
调用 import os包
@文件的重命名:
os模块中的rename()可以完成
rename(老的文件名,新的文件名)
import os
os.rename(‘test.txt’,‘test01.txt’)
@文件的删除:
os模块中的remove()可以完成对文件的删除操作 remove(待删除的文件名)
import os
os.remove(‘test.txt’)
@创建文件夹
import os
os.mkdir(’.’)
@获取当前目录
import os
os.getcwd()
@改变默认目录
os.chdir(’…/’)
@获取目录列表
os.listdir(’./’)
2删除文件夹
os.rmdir(’.’)
#####额外知识点
1 abspath()----获取绝对路径
path= “abc.txt”
print(os.path.abspath(path))
2 os.curdir ----当前目录
path = “F:” + os.path.sep + “workspace” + os.path.sep+ “day07” + os.path.sep
new_path = path +os.curdir
print(os.path.abspath(new_path))
3 exist()----判断一个文件或者路径是否存在
path = “F:” + os.path.sep + “workspace”+os.path.sep + “day06” + os.path.sep
if os.path.exists(path):
print(“存在”)
else:
print(“不存在”)
4isabs()—判断是不是绝对路径
path=“abc.txt”
if os.path.isabs(path):
print(“是绝对路径”)
else:
print(“不是绝对路径”)
5、 ispath()—是不是目录
6、isfile()—是不是文件
path = “D:” + os.path.sep + “Temp”+os.path.sep + “Demo” + os.path.sep
if os.path.isfile(path):
print(“文件”)
else:
print(“目录”)
7、 samefile(path1,path2)----判断path1hepath2两个路径是否指向同一个文件