Python内置的os
模块除了可以对目录进行操作,还可以对文件进行一些高级操作,具体函数如表所示。
Python没有内置删除文件的函数,但是在内置的os模块中提供了删除文件的函数remove()
。
import os
os.remove('message.txt')
如果删除的文件不存在,就会报错,所以使用如下代码:
import os
path = 'message.txt'
if os.path.exists(path):
os.remove(path)
print('删除完毕!')
else:
print('文件不存在!')
'''
文件不存在!
'''
os
模块提供了重命名文件和目录的函数rename()
,如果指定的路径是文件,则重命名文件,如果指定的路径是目录,则重命名目录。
import os
#print(os.getcwd())
src = "C:\\Users\\包文强\\Desktop\\python练习\\文件\\message.txt"
#print(os.path.exists(src))
dst = "C:\\users\\包文强\\Desktop\\python练习\\文件\\new.txt"
if os.path.exists(src):
os.rename(src, dst)
print('文件重命名完毕!')
else:
print('文件不存在!')
'''
文件重命名完毕!
'''
通过os
模块的stat()
函数可以获取到文件的例如:最后一次访问时间、最后一次修改时间、文件大小等基本信息。
stat()
函数的返回值是一个对象,该对象包含下表所示的属性。通过访问这些属性可以获取文件的基本信息。
import os
path = "C:\\Users\包文强\Desktop\\taxis.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_ctime)
'''
文件的完整路径是: C:\Users\包文强\Desktop\taxis.jpg
索引号是: 19140298416657048
设备名是: 3796330876
文件大小是: 184888
最后一次访问时间是: 1596361873.9498844
最后一次修改时间是: 1596361567.8976705
最后一次状态变化时间是: 1596361569.2469213
'''
由于上面的结果中的时间和字节数都是一长串的整数,与我们平时见到的有所不同,所以一般情况下,为了让显示更加直观,还需要对这样的数值进行格式化。这里主要编写两个函数,一个用于格式化时间,另一个用于格式化代表文件大小的字节数。修改后的代码如下:
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)
elif number == 1:
return "1 字节"
else:
byte = "%.2f" % (number or 0)
return (byte[:-3] if byte.endswith('.00') else byte)+" 字节"
if __name__ == '__main__':
path = "C:\\Users\包文强\Desktop\\taxis.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_ctime))
'''
文件的完整路径是: C:\Users\包文强\Desktop\taxis.jpg
索引号是: 19140298416657048
设备名是: 3796330876
文件大小是: 180.55 KB
最后一次访问时间是: 2020-08-02 17:51:13
最后一次状态变化时间是: 2020-08-02 17:46:09
'''