zoukankan      html  css  js  c++  java
  • Python 处理文件

    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”模块来实现。
  • 相关阅读:
    【WPF】 Prism 框架中,TabControl 作为Region时如何设置Header
    【WPF】将控件事件中的参数,传递到ViewModel中
    WPF 一种带有多个子集的类ComBox 解决方法
    WPF TabControl美化
    【WPF】 问题总结-RaidButton修改样式模板后作用区域的变化
    C# 打开Excel文件
    获取文件夹下所有的文件名
    访问需要HTTP Basic Authentication认证的资源的c#的实现 将账号密码放入url
    第十三章 建造者模式(Builder)
    第十二章 外观模式 (Facade)
  • 原文地址:https://www.cnblogs.com/helo-blog/p/3854355.html
Copyright © 2011-2022 走看看