python操作文件及os模块相关
1.open函数,可以打开一个已经存在的文件,或者创建一个新文件
open(文件名,访问模式),注意默认encoding是gbk,如果文件编码是utf8,
open(文件名,访问模式,encoding='utf8')
访问模式:
r:以只读的方式打开文件,文件的指针放在文件的开头
w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:以追加的方式打开文件并写入内容,也就是说文件指针将会放在文件的结尾,如果该文件不存在,创建新文件进行写入。
rb:以二进制格式打开一个文件用于只读。wb,ab同理。
r+:给r模式增加了写入的功能
w+:给w模式增加了读出的功能
a+:给a模式增加了读出的功能
2.写数据
使用write()可以完成向文件写入数据。
f = open("test.txt",'w')
f.write("lalalla"+'\n'+"hahahaha")
f.close()
3.读数据
read函数,read(num),num,从文件中读取的数据的长度(单位是字节),后面读取的数据是从上次读完后的位置开始的,如果不传入,就默认读出全部数据。
f1 = open("test.txt",'r')
f1.read(2)
'la'
f1.read(9)
'lalla\nhah'
readlines函数,可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
readline函数:读取文件中一行的数据,后面读取的数据是从上次读完后的位置开始的。
4.close函数,关闭文件
5.获取在当前文件中指针读写的位置
tell函数,在close函数之前。
f = open("test.txt", "r")
str = f.read(3)
print("读取的数据是 : ", str)
# 查找当前位置
position = f.tell()
print("当前文件位置 : ", position)
str = f.read(3)
print("读取的数据是 : ", str)
# 查找当前位置
position = f.tell()
print("当前文件位置 : ", position)
f.close()
读取的数据是 : lal
当前文件位置 : 3
读取的数据是 : all
当前文件位置 : 6
6.定位到某个位置
seek(offset, from)有2个参数
offset:偏移量
from:方向
0:表示文件开头
1:表示当前位置
2:表示文件末尾
f = open("test.txt", "r")
print(f.tell())
print(f.seek(5,0))
print(f.tell())
0
5
5
7.os.rename("老文件名","新文件名") 重命名文件名
8.os.remove("删除文件名") 删除文件
os.removedirs('dirname1')若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
9. os.mkdir("张三") 创建文件夹
10. os.getcwd() 获取当前目录
11. os.chdir("test") ,目录切换
12.os.listdir(),获取当前文件列表,包括文件夹,文件名。
13.os.rmdir("待删除文件夹") 删除文件夹,目录非空不能使用
import shutil
shutil.rmtree("待删除文件夹"),删除非空目录
14.os.walk(top, topdown=True, onerror=None, followlinks=False)用来遍历一个目录内各个子目录和子文件。
top 是你所要便利的目录的地址
topdown 为真,则优先遍历top目录,否则优先遍历top的子目录(默认为开启)
onerror 需要一个 callable 对象,当walk需要异常时,会调用
followlinks 如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)
os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。
得到一个三元tupple(dirpath, dirnames, filenames)
第一个为起始路径,第二个为起始路径下的文件夹列表,第三个是起始路径下的文件列表。
for root,dirs,files in os.walk("test"):
print(root)
print(dirs)
print(files)
test
['t']
['t.txt']
test\t
[]
['t1.txt']
15.os.sep 主要用于系统路径中的分隔符.windows下是'\\',linux是'/'
os.sep
'\\'
16.os.chmod 更改文件或目录的权限。
os.chmod(path, mode),
17.Os.path.abspath(path) 返回文件绝对路径(有文件名)
18.os.path.dirname(path),返回文件路径
os.path.dirname("test/t.txt")
'test'
19.os.path.join(path1[,path2[,……]]), 将多个路径组合后返回
os.path.join(os.getcwd(),"ppp.txt")
'C:\\test\\ppp.txt'
20.os.path.split(path)
将path分割成目录和文件名二元组返回。
os.path.split("test/t.txt")
('test', 't.txt')
21.os.path.basename(),返回文件名
os.path.basename("test/t.txt")
't.txt'
22.os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
os.path.exists("ttttt")
False
23.os.path.isabs/isdir/isfile(path)
如果path是一个存在的绝对路径/文件夹/文件,返回True。否则返回False。
24.os.path.getsize(path) 返回path的文件的大小(字节)
os.path.getsize("test/t.txt")
72