1.1文件操作介绍
1.2在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件
open(文件名,访问模式)
示例如下:
f = open('test.txt','w')
1.2.2:关闭文件
close( )
示例如下:
#新建一个文件,文件名为:test.txt
f = open('test.txt','w')
#关闭这个文件
f.close()
withopen('test.txt','w') as f:
f.read()
1.2.3路径
1.2.3.1:linux
1.2.3.2:windows
1.3.1:写数据(write)
使用write()可以完成向文件写入数据
demo:
f = open('test.txt','w')
f.write('hello world, i am here!')
f.close()
注意:
·如果文件不存在那么创建,如果存在那么就先清空,然后写入数据
1.3.2:读数据(read)
使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
demo:
f = open('test.txt','r')
content = f.read(5)
print(content)
print("-"*30)
content = f.read()
print(content)
f.close()
注意:
·如果open是打开一个文件,那么可以不用谢打开的模式,即只写open('test.txt')
·如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的
1.3.3:读数据(readlines)
就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
f = open('test.txt','r')
content = f.readlines()
print(type(content))
i=1
fortempincontent:
print("%d:%s"%(i, temp))
i+=1
f.close()
1.3.4:读数据(readline)
f = open('test.txt','r')
content = f.readline()
print("1:%s"%content)
content = f.readline()
print("2:%s"%content)
f.close()
1.4:应用1:制作文件的备份
任务描述:
输入文件的名字,然后程序自动完成对文件进行备份
大文件复制:
批量修改文件名:
1.5:文件的随机读写
1.5.1获取当前读写的位置
在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取
从0开始到字符的个数
#打开一个已经存在的文件
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()
1.5.2:定位到某个位置
如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()
seek(offset, from)有2个参数
1.offset: 偏移量
2.from:方向
a)0:表示文件开头(python3)默认就是
b)1:表示当前位置(python2)
c)2:表示文件末尾(python2)
demo: 把位置设置为:从文件开头,偏移5个字节
1.6:文件的重命名、删除
有些时候,需要对文件进行重命名、删除等一些操作,python的os模块中都有这么功能,需要导入模块。
1.6.1文件重命名:rename
1.6.2删除文件:remove
1.7:实际开发中,有时需要用程序的方式对文件夹进行一定的操作,比如创建、删除等
就像对文件操作需要os模块一样,如果要操作文件夹,同样需要os模块
1.7.1:创建文件夹:os.mkdir("张三");os.makedirs(‘m/n’)
1.7.2:获取当前目录:os.getcwd() / demo:print(os.getcwd(())括号内不写东西
1:7.3:改变默认目录:os.chdir("../")
1:7.4:获取目录列表:os.listdir("./") /demo: print(os.listdir('./'))
1.7.5:删除文件夹:os.rmdir("张三")
1.8: shutil。首先导入shutil模块
1.8.1:shutil.retree('m')
1.8.2:批量修改文件名
import os
#得到完整路径
dir = input('输入完整的路径:')
#获取此路径下的列表
all_file = os.listdir(dir)
#改变当前的工作路径
os.chdir(dir)
#遍历
for i in all_file:
#处理名字
new_name = i[:i.index('.')] + '-new' + i[i.index('.'):]
#重命名
os.rename(i, new_name)
1.9:os.path 一些应用:
1.9.1:判断指定对象是否为文件---os.path.isfile()
1.9.2:os.path.exists()——检验指定的对象是否存在。是True,否则False
1.9.3:os.path.split()——返回路径的目录和文件名
1.9.4:os.path.abspath(path)-------返回path规范化的绝对路径
1.9.5:os.path.basename(path)--返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
1.9.6:os.path.getmtime(path)-----返回path所指向的文件或者目录的最后修改时间
1.9.7:os.path.getsize(path)-------返回path的文件的大小(字节)
1.9.8:os.path.isdir(path)-----如果path是一个存在的目录 返回True 不在返回False
1.9.9:os.path.splitext(path)------分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
1.9.10:os.path.getatime(path)---------返回path所指向的文件或者目录的最后存取时间
说明:
详细了解文件文件夹的操作,需要掌握os,os.path.shutil