极简Python语法(11)

12.3 高级文件操作

  Python内置的os模块除了可以对目录进行操作,还可以对文件进行一些高级操作,具体函数如表所示。
极简Python语法(11)_第1张图片

12.3.1 删除文件

  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('文件不存在!')
'''
文件不存在!
'''

12.3.2 重命名文件和目录

  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('文件不存在!')
'''
文件重命名完毕!
'''

1323.3 获取文件基本信息

  通过os模块的stat()函数可以获取到文件的例如:最后一次访问时间、最后一次修改时间、文件大小等基本信息。

  stat()函数的返回值是一个对象,该对象包含下表所示的属性。通过访问这些属性可以获取文件的基本信息。
极简Python语法(11)_第2张图片

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
'''

你可能感兴趣的:(Python)