Python获取文件信息

文件读写

open()与file()

open()方法使用python内建函数操作文件
file()则是构建了一个file文件类来打开文件

函数语法

open(name[, mode[, buffering]])
name:文件名
mode:操作模式
buffering:0 - 不寄存读取的数据,1 - 寄存一行数据
,大于1的整数表示寄存区的缓冲大小

文件操作模式

mode description
r 只读(默认使用)
w 只写
x 每次都创建新文件写入
a 追加
b 二进制模式(组合使用)
t 文本模式(组合使用,默认使用)
+ 读写模式(组合使用)
U 通用换行模式(组合使用)

Tips:

  1. xw 功能类似,但若创建文件已存在 x 模式下会抛出FileExistsError错误
  2. w 模式每次写入前会清空已有的文件内容
  3. r+w+a+ 均为可读写模式操作,区别是 a+ 是在文件末尾追加内容, w+ 是清空文件原本内容后再写入新内容, r+ 是可以写到文件的任意位置(配合file.seek()方法)

file对象常用方法

  1. file.read([size])
    size 未指定则返回整个文件,如果 文件大小 > 2 倍内存则有问题,读到文件尾时返回""(空字串)
  2. file.readline()
    返回一行
  3. file.readlines([size])
    返回包含size行的列表,不指定则返回所有
  4. file.write("msg")
    字符串以外的数据写入需要使用str()函数进行转换
  5. file.tell()
    返回当前文件指针位置
  6. file.seek(偏移量, [起始位置])
    偏移量:单位比特,可正可负
    起始位置:0 - 文件头(默认); 1 - 当前位置; 2 - 文件尾
  7. file.flush()
    把内部缓冲区的数据立刻写入文件
  8. file.close()
    关闭文件
  9. 通过迭代器访问文件内容
for line in file:
    print(line)

获取文件大小

os.path.getsize

import os

def get_file_size(path):
    """
    获取文件大小,结果保留两位小数,单位MB
    """
    f = os.path.getsize(path)
    f = f/float(1024 * 1024)
    return round(f, 2)

获取文件创建时间

os.path.getctime

def get_file_create_time(path):
    """
    获取文件创建时间
    """
    t = os.path.getctime(path)
    return timeu.time_format(t)

获取文件最新修改时间

os.path.getmtime

import os
import Utils.TimeUtil as timeu

def get_file_modify_time(path):
    """
    获取文件修改时间
    """
    t = os.path.getmtime(path)
    return timeu.time_format(t)

相关拓展实现

自定义工具类引用

import Utils.TimeUtil as timeu

时间戳转换方法

def time_format(timestamp):
    """
    时间戳格式化 1479264792
    2016-11-16 10:53:12
    """
    convert = time.localtime(timestamp)
    return time.strftime('%Y-%m-%d %H:%M:%S', convert)

你可能感兴趣的:(Python获取文件信息)