下面的内容是python中对于文件路径的一些操作,还包含文件元数据的提取:
#-*-coding:UTF-8-*-
#文件操作
import os
print os.getcwd() #返回当前的工作路径
os.chdir('C:/Users/Administrator/Desktop') #更改路径到,不要用‘\’,容易引起转义,中文有兼容性问题
print os.getcwd()
import os.path
print (os.path.join('C:/Users/Administrator/Desktop','书籍')) #join()函数可以从一个或者是多个路径中拼接一个字符串
print os.path.split('C:/Users/Administrator/Desktop') #分隔文件路径,用于提取文件名返回一个元组(a,b)a为文件夹,b为文件夹或者文件名
print os.path.splitext("abc.txt") #用来分隔文件名和文件后缀名,得到结果为('abc','.txt')
#罗列目录内容,用到了一个新的标准库glob
import glob
os.chdir('C:/Users/Administrator/Desktop')
print glob.glob('*.pdf') #返回当前目录下的*.pdf所匹配的文件和文件夹
#获取文件元信息,现在每个文件都有一些元信息被文件系统保存着,像什么创建时间,最后修改时间,文件大小等等
os.chdir('C:/Users/Administrator/Desktop')
metadata=os.stat("a.jpg") #返回了一个元信息对象
print metadata
print metadata.st_mtime #st_mtime代表的是最后的修改时间,返回的是一个从1970年1月1日到现在的秒数,要转换
import time
print time.localtime(metadata.st_mtime) #根据从纪元到现在的秒数返回一个包含年、月、日、小时、分钟、秒的结构体
print metadata.st_size #返回文件的大小,单位为字节数
#构造绝对路径
print os.getcwd()
print os.path.realpath('a.jpg') #选取当前目录下的一个文件,返回这个文件的绝对路径
结果:
C:\Users\Administrator\Desktop
C:/Users/Administrator/Desktop\书籍
('C:/Users/Administrator', 'Desktop')
('abc', '.txt')
[]
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=76128L, st_atime=1333074392L, st_mtime=1333074370L, st_ctime=1333074392L)
1333074370.2
time.struct_time(tm_year=2012, tm_mon=3, tm_mday=30, tm_hour=10, tm_min=26, tm_sec=10, tm_wday=4, tm_yday=90, tm_isdst=0)
76128
C:\Users\Administrator\Desktop
C:\Users\Administrator\Desktop\a.jpg