最近需要处理许多数据文件,常用matlab处理,虽然很方便,但是每次启动慢,很麻烦。用C语言之类的需要考虑细节,处理文件又只是随手用用,感觉不值得花费太多时间。后来发现Python是个不错的选择,小巧方便,因此找些资料开始学习下。入门细节不多说,直接用程序练习。
目的是为了熟悉文件操作,所以想先写个脚本获取当前目录信息的小功能。需要输出的有:
1、 文件名及子目录名
2、 文件大小(单位KB)
3、 文件的创建时间及修改时间
很简单,获取文件信息之类的功能肯定与操作系统相关,通过说明文档可以找到几个有用的函数:os.getcwd()、os.listdir()、os.stat(),都包含在os包里。分别可以获取当前目录名、指定目录包含所有内容的名称、指定文件或目录的信息,使用细节可以参照说明文档。
找到这几个函数后就是对照文档堆代码了,没什么技术含量,安排好程序流程就好。Python格式化输出字符串与C语言类似,使用时也比较方便。需要注意的是时间的转换,由于os.stat()返回的结果是距初始时间点的秒数,所以格式化前需用库函数time.ctime()转换。
完成的代码如下:
import os
import time
import struct
def GetCurPathInfo():
CurPath = os.getcwd()
ChildrenList = os.listdir(CurPath)
InfoDict = dict()
for Name in ChildrenList:
tempInfo = os.stat(Name)
tempDict = dict( [('Size', tempInfo.st_size),\
('CreateTime',time.ctime(tempInfo.st_ctime))] )
InfoDict[Name] = tempDict
for Record in InfoDict:
info = r'%s %s KB %s' %(Record, InfoDict[Record]['Size'],\
InfoDict[Record]['CreateTime'])
print(info)
def test():
GetCurPathInfo()
if __name__ == '__main__': test()
运行效果如图1,四列数据分别为文件名、文件大小、最近修改时间、创建时间。
图1 脚本运行效果
非常简单,但可以熟悉下Python编程。