python文件操作(二)

在python中对文件的操作不仅限于对文件进行常规的读写操作,有时候我们可能需要获取到文件的状态,例如:创建的时间、大小、修改日期等。在os模块中就提供了一个方法供我们查看文件的状态:

import os

file_state=os.stat("1.txt")#查看文件的状态
print(file_state)

 输出信息:

os.stat_result(st_mode=33206, st_ino=48132221017523865, st_dev=2697545869, st_nlink=1, st_uid=0, st_gid=0, st_size=20, st_atime=1555413417, st_mtime=1555413406, st_ctime=1555413417)

 在上面代码加上下面一行代码: 

print(file_state.st_ctime)#文件创建时间

 输出下面信息:

1555413417.354877

可能看不懂上面信息什么意思,可以加入time模块,可以显示详细的时间,然后加入下面代码:

import time

print(time.local(file_stat.st_time)

 这样根据英文信息就可以猜到大概信息了吧。

time.struct_time(tm_year=2019, tm_mon=4, tm_mday=16, tm_hour=19, tm_min=16, tm_sec=57, tm_wday=1, tm_yday=106, tm_isdst=0)

read、readline、readlines的区别和使用方式:

read:如果指定了参数size,就按照该指定长度从文件中读取内容,否则,就读取全文。

readline:那个可选参数size的含义同上。它则是以行为单位返回字符串,也就是每次读一行,依次循环,如果不限定size,直到最后一个返回的是空字符串,意味着到文件末尾了(EOF)。

readlines:size同上。它返回的是以行为单位的列表,即相当于先执行readline(),得到每一行,然后把这一行的字符串作为列表中的元素塞到一个列表中,最后将此列表返回。

下面分别举例说明三种方式:

 原文本内容如下:

python文件操作(二)

案例一:read()

f = open("a.txt","r")
content = f.read()#未指定参数size,读取全文
print(content)
f.close()

输出结果:

python文件操作(二)

案例二:readline()

f = open("a.txt","r")
content = f.readline()#未指定参数,则一直读到字符串为空的地方,即到原文本第一行末尾you后面的空格停止
print(content)
f.close()

输出结果:

python文件操作(二)

案例三:readlines()

f = open("a.txt","r")
content = f.readlines()
print(content)
f.close()

 输出结果:

python文件操作(二)

一直到原文本内容末尾, 将原文本所有信息读成一行放入一个列表中返回。

python文件操作(二) 注意:在python中,'\n'表示换行,这也是UNIX系统中的规范,但是在windows中,用'\r\n'才表示换行。

读取较大的文件:如果文件太大,就不能用read()或者readlines()一次性将全部内容读入内存,可以使用while循环和readlin()来完成这个任务,此外还有一个input()方法,需要导入fileinput模块。

import fileinput
for i in fileinput.input("a.txt"):
    print(i)

输出结果:

python文件操作(二)