首页 > 编程语言 > 详细

Python 处理文件

时间:2014-07-19 09:05:18      阅读:368      评论:0      收藏:0      [点我收藏+]

1.从现有文件中获取信息      

使用Python中的模块,可以从现有文件中获取信息。使用“os”模块和“stat”模块可以获取文件的基本信息:

 1 import os   
 2 import stat   
 3 import time<DIV></DIV>   
 4 
 5 fileStats = os.stat ( test.txt )   
 6 fileInfo = {   
 7     Size : fileStats [ stat.ST_SIZE ],   
 8     LastModified : time.ctime ( fileStats [ stat.ST_MTIME ] ),   
 9     LastAccessed : time.ctime ( fileStats [ stat.ST_ATIME ] ),   
10     CreationTime : time.ctime ( fileStats [ stat.ST_CTIME ] ),   
11     Mode : fileStats [ stat.ST_MODE ]   
12 }   
13 
14 for infoField, infoValue in fileInfo:   
15     print infoField, : + infoValue   
16 if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):   
17     print Directory.  
18 else:   
19     print Non-directory.

 

上面这个例子创建了一个包含文件基本信息的dictionary。然后显示了相关信息,并且告诉我们打开的是否为目录。我们也可以试一下打开的是否是其它几种类型:

 1 import os   
 2 import stat   
 3 
 4 fileStats = os.stat ( test.txt )   
 5 fileMode = fileStats [ stat.ST_MODE ]   
 6 if stat.S_ISREG ( fileStats [ stat.ST_MODE ] ):   
 7     print Regular file. 
 8 elif stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):   
 9     print Directory. 
10 elif stat.S_ISLNK ( fileStats [ stat.ST_MODE ] ):   
11     print Shortcut. 
12 elif stat.S_ISSOCK ( fileStats [ stat.ST_MODE ] ):   
13     print Socket. 
14 elif stat.S_ISFIFO ( fileStats [ stat.ST_MODE ] ):   
15     print Named pipe. 
16 elif stat.S_ISBLK ( fileStats [ stat.ST_MODE ] ):   
17     print Block special device. 
18 elif stat.S_ISCHR ( fileStats [ stat.ST_MODE ] ): 

 

 

获取路径内文件信息的方法:

1     import os   
2     for fileName in os.listdir ( / ):   
3         print fileName  

 

创建/删除目录的方法:
1     import os   
2     os.mkdir ( testDirectory )  
3     os.rmdir(testDirectory)

 

创建多级目录的方法:

1     import os   
2     os.makedirs ( I/will/show/you/how/deep/the/rabbit/hole/goes )  

 

 

2. 处理路径下特定的文件

方法一:fnmatch

匹配特定的文件类型

       当需要对一个特定的文件类型进行操作时,我们可以选择“fnmatch”模块。以下是显示“.txt”文件的内容和“.exe”文件的文件名:

1     import fnmatch   
2     import os   
3       
4     for fileName in os.listdir ( / ):   
5         if fnmatch.fnmatch ( fileName, *.txt ):   
6             print open ( fileName ).read()   
7         elif fnmatch.fnmatch ( fileName, *.exe ):   
8             print fileName  

 

       匹配具体的文件
1     import fnmatch   
2     import os   
3       
4     for fileName in os.listdir ( / ):   
5         if fnmatch.fnmatch ( fileName, ‘serch_this.txt ):   
6             print Text file.  

 

方法二:glob (更好用的方法)

        若只需要匹配一种类型的文件,更好的办法是使用“glob”模块。该模块的格式和“fnmatch”相似:
1     import glob   
2       
3     for fileName in glob.glob ( *.txt ):   
4         print Text file.  

 

 
        “glob”模块利用“fnmatch”模块来实现。

Python 处理文件,布布扣,bubuko.com

Python 处理文件

原文:http://www.cnblogs.com/helo-blog/p/3854355.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!