小朋友们好,大朋友们好!
我们今天学习高级文件操作,要学习的内容如下:
高级文件操作
删除文件
重命名文件和目录
获取文件基本信息
高级文件操作
Python中的os模块,可以对文件进行一些高级操作,比如:
access(pach,accessmode):获取对文件是否有指定的访问权限
chmod(path,mode):修改path指定文件的访问权限
remove(path):删除path指定的文件路径
rename(src,dst):将文件或目录src重命名为dst
stat(path):返回path指定文件的信息
startfile(path[,operaton]):使用关联的应用程序打开path指定的文件
删除文件
Python内置的os模块提供删除文件函数remove,格式如下:
os.remove(path)
猫妹的测试代码见43.2.py
import os
path=r'test.txt'
if os.path.exists(path):
os.remove(path)
print('文件删除成功')
else:
print('此文件不存在')
重命名文件和目录
Python内置的os模块提供删除文件函数rename,格式如下:
os.rename(src,dst)
src:要进行重命名的目录或文件
dst:重命名后的目录或文件
文件重命名见43.3.1.py
import os
path=r'test.txt'
newPath=r'和猫妹学Python.txt'
if os.path.exists(path):
os.rename(path,newPath)
print('文件重命名成功')
else:
print('此文件不存在')
目录重命名见43.3.2.py
import os
path=r'test\猫妹'
newPath=r'test\和猫妹学Python'
if os.path.exists(path):
os.rename(path,newPath)
print('文件重命名成功')
else:
print('此文件不存在')
在目录重命名时,只能修改最后一级目录名称,否则抛出异常,见43.3.3.py
import os
'''
path=r'test\猫妹'
newPath=r'test1\猫妹'
'''
path=r'test'
newPath=r'test1'
if os.path.exists(path):
os.rename(path,newPath)
print('文件重命名成功')
else:
print('此文件不存在')
获取文件基本信息
文件有许多信息,Python内置的os模块提供了函数stat可以获取,格式如下
os.state(path)
state函数返回值是一个对象,包含如下信息:
st_mode:保护模式
st_ino:索引号
st_nlink:硬链接号
st_size:文件大小,单位是字节
st_mtime:最后一次修改时间
st_dev:设备号
st_uid:用户id
st_gid:组id
st_atime:最后一次访问时间
st_ctime:最后一次状态变化时间
猫妹的测试代码见43.4.1.py
import os
path=r'test.jpg'
fileinfo=os.stat(path)
print("文件完整路径:",os.path.abspath(path))
print("索引号:",fileinfo.st_ino)
print("设备号:",fileinfo.st_dev)
print("文件大小:",fileinfo.st_size,'字节')
print("最后一次访问时间:",fileinfo.st_atime)
print("最后一次修改时间:",fileinfo.st_mtime)
print("最后一次状态变化时间:",fileinfo.st_ctime)
我们写两个函数,简单下处理大小和时间,用人习惯阅读的方式展现。
猫妹的测试代码见43.4.2.py
import os
def formatTime(longtime):
'''
格式化日期时间的函数
'''
import time
return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(longtime))
def formatbyte(number):
'''
格式化字节的函数
'''
for (scale,label) in [(1024*1024*1024,'GB'),(1024*1024,'MB'),(1024,'KB')]:
if number >= scale:
return "%.2f %s" %(number*1.0/scale,label)
else:
byte = "%.2f"% (number)
path=r'test.jpg'
fileinfo=os.stat(path)
print("文件完整路径:",os.path.abspath(path))
print("索引号:",fileinfo.st_ino)
print("设备号:",fileinfo.st_dev)
print("文件大小:",formatByte(fileinfo.st_size),'字节')
print("最后一次访问时间:",formatTime(fileinfo.st_atime))
print("最后一次修改时间:",formatTime(fileinfo.st_mtime))
print("最后一次状态变化时间:",formatTime(fileinfo.st_ctime))
好了,今天的学习就到这里!
我们下次见!