`
全冠清
  • 浏览: 52472 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

用python找出最近修改的文件

阅读更多
上线时几个人同时过上百个文件,这时就需要列出修改过文件的列表
手工记录几乎不可能,这时可以用文件最后修改时间和开始修改时的时间做比较,这时就可以对比出列表
import os,os.path,re,time

filelist=[]
path = 'F:\hbtv'

t=time.strptime("2010-09-15 00:00:00", "%Y-%m-%d %H:%M:%S")
t= time.mktime(t)



for root, dirs, files in os.walk(path):
    for file in files:
        path= os.path.join(root, file)
        if (not re.match(r".*(\.svn|\.project|html\.\d+|Thumbs\.db).*", path)):# and os.path.getmtime(file)>t :
            filelist.append(path)

for i in filelist:
  if os.path.getmtime(i)>t:
      print i#,time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime(os.path.getmtime(i)))
分享到:
评论
8 楼 全冠清 2011-07-25  
#!/usr/local/bin/python

#coding=utf-8

"change images path"

import os,os.path,re,sys,shutil


def changepath(path,rules):
    types=[key for key in rules]
    for root,dirs,files in os.walk(path):
        for file in files:
            for i in rules:
                if file.endswith(i):
                   page=open(os.path.join(root,file)).read()
                   if re.search(r'\.jpg|\.gif|\.png|\.css', page):
                      for i in rules[i]:
                          if len(i)==3:
                              page=re.sub(i[0], i[1],page)
                          else:
                              page=page.replace(*i)
                      open(os.path.join(root,file),'w').write(page)
                      print os.path.join(root,file)

def copychanges(src,target,changelists):
       if not os.path.exists(target):
                 os.makedirs(target)
       j=0
       nl=[]
       for i in changelists:
             l= os.path.split(i)
             if not os.path.exists(os.path.join(target,l[0])):
                 os.makedirs(os.path.join(target,l[0]))
             try:    
                 shutil.copyfile(os.path.join(src,i), os.path.join(target,i))
             except Exception,e:
                  print e
                  j=j+1
                  print j
                  nl.append(i.strip())
       print "#" *100
       print "uncopy file:"
       for i in nl:
           print i
       print "%s%s%s" %('total',len(nl),'')       

def getStaticMoveList(source):
          l=[]
          for root,dirs,files in os.walk(source):
                for file in files:
                    l.append(os.path.join(root,file))
          l=[i.replace(source,'')[1:] for i in l if i[-3:] not in ['jsp','ass','xml','ftl']]      
          return l 

if __name__=='__main__':
     rules={".jsp":[ (r'http://image21.19e.cn:18060/',r'http://image30.19360.cn/'),
                   (r'url(/',r'url(http://image30.19360.cn/transaction3.0/'),
                   (r'src="/(?=(\w|\.|_|/)+?(\.gif"|\.png"|\.jpg"|\.css"))',r'src="http://image30.19360.cn/transaction3.0/',True),
                   (r"src='/(?=(\w|\.|_|/)+?(\.gif'|\.png'|\.jpg'|\.css'))",r"src='http://image30.19360.cn/transaction3.0/",True),
                    (r"href='/(?=(\w|\.|_|/)+?\.css')",r"href='http://image30.19360.cn/transaction3.0/",True),
                     (r'href="/(?=(\w|\.|_|/)+?\.css")',r'href="http://image30.19360.cn/transaction3.0/',True)],
       ".html":[ (r'http://image21.19e.cn:18060/',r'http://image30.19360.cn/'), 
                   (r'url(/',r'url(http://image30.19360.cn/transaction3.0/'),
                   (r'src="/(?=(\w|\.|_|/)+?(\.gif"|\.png"|\.jpg"|\.css"))',r'src="http://image30.19360.cn/transaction3.0/',True),
                   (r"src='/(?=(\w|\.|_|/)+?(\.gif'|\.png'|\.jpg'|\.css'))",r"src='http://image30.19360.cn/transaction3.0/",True),
                   (r"href='/(?=(\w|\.|_|/)+?\.css')",r"href='http://image30.19360.cn/transaction3.0/",True),
                     (r'href="/(?=(\w|\.|_|/)+?\.css")',r'href="http://image30.19360.cn/transaction3.0/',True)],     
        ".htm":[ (r'http://image21.19e.cn:18060/',r'http://image30.19360.cn/'),
                   (r'url(/',r'url(http://image30.19360.cn/transaction3.0/'),
                   (r'src="/(?=(\w|\.|_|/)+?(\.gif"|\.png"|\.jpg"|\.css"))',r'src="http://image30.19360.cn/transaction3.0/',True),
                   (r"src='/(?=(\w|\.|_|/)+?(\.gif'|\.png'|\.jpg'|\.css'))",r"src='http://image30.19360.cn/transaction3.0/",True),
                   (r"href='/(?=(\w|\.|_|/)+?\.css')",r"href='http://image30.19360.cn/transaction3.0/",True),
                   (r'href="/(?=(\w|\.|_|/)+?\.css")',r'href="http://image30.19360.cn/transaction3.0/',True)],                  
       ".css":[ (r'http://image21.19e.cn:18060/',r'http://image30.19360.cn/'),
                   (r'url(/',r'url(http://image30.19360.cn/transaction3.0/')]}
     for arg  in sys.argv:
           print arg            
     if len(sys.argv) < 2:
          print "require path"
     else:    
          path=sys.argv[1]
          path=os.path.abspath(path)
          changepath(path,rules)
          l=getStaticMoveList(path)   
          copychanges(path,"%s%s"%(path,"_static"),l)
7 楼 全冠清 2011-05-27  
检测空链接
def validateUrl(url):
        up=urlparse.urlparse(url)
        http=httplib.HTTP(up[1])
        http.putrequest('GET',up[2])
        http.putheader('Accept','*/*')
        http.endheaders()
        errcode,errmsg,headers=http.getreply()
        if errcode==200:
            return False
        else:
            return True
 
6 楼 全冠清 2011-05-27  
静态文件加参数
#!/usr/bin/python
#coding=utf-8
 
"""静态文件加参数"""
 
import os.path
 
def main(path,rules,filerules):
    for root,dirs,files in os.walk(path):
        for file in files:
            if filerules(file):
                page=open(os.path.join(root,file)).read()
                for i in rules:
                    page=page.replace(*i)
                    open(os.path.join(root,file),'w').write(page)
                    print os.path.join(root,file)
 
if __name__=='__main__':
    rules=[(r'.%s%s'%(i,j),r'.%s%s%s'%(i,'?20110527',j)) for i in ['css','jpg','gif','png'] for j in ['"',"'",')']]
    filerules=lambda x: x.endswith(".html") or x.endswith(".htm") or x.endswith(".jsp") or x.endswith(".css")
    path="D:\\temp"
    main(path,rules,filerules)
5 楼 全冠清 2011-05-18  
批量拷贝变更
import os,os.path,shutil
 
def copychanges(src,target,changelists):
       j=0
       for i in changelists:
             if i[-5:] ==".java":
                 i="%s%s"%(i[:-5],".class")
             l= os.path.split(i)
             if not os.path.exists("%s%s"%(target,l[0])):
                 os.makedirs("%s%s"%(target,l[0]))
             try:   
                 shutil.copyfile("%s%s"%(src,i.strip()), "%s%s"%(target,i.strip()))
                 print "%s%s"%(target,i.strip())
             except Exception:
                  j=j+1
                  print j   
4 楼 全冠清 2011-03-25  
#!/usr/bin/python
#coding=gb2312

import urllib2,cookielib,urllib,re,time,threading

class Conn(object):
    '''
    classdocs
    '''


    def __init__(self):
            cookie_support= urllib2.HTTPCookieProcessor(cookielib.CookieJar())
            opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
            urllib2.install_opener(opener)
            self.headers = {
                                        'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
                                    }
    
    def request(self,url,data={}):
           postdata=urllib.urlencode(data)      
           req = urllib2.Request(
                                               url =url,
                                               data = postdata,
                                               headers=self.headers
                                               )
           link=urllib2.urlopen(req)
           result = link.read()
           link.close()
           return  result

c=Conn()

def login():
        login_page= c.request('http://www.517na.cn/login.aspx')
        imgdata=urllib2.urlopen("http://www.517na.cn/Images/ValidateCode.aspx").read()
        f=open("img.gif","wb")
        f.write(imgdata)
        f.close()
        v_code=raw_input("请输入验证码内容,按回车键结束:")
        login_page=c.request('http://www.517na.cn/login.aspx?ReturnUrl=%2fDefault.aspx',{
                                                                                                                                  'ibtnLogin.x':   17,
                                                                                                                                'ibtnLogin.y':    33,
                                                                                                                                'txtPWD':'xxx',
                                                                                                                                'txtUser':'xxx',
                                                                                                                                'txtValied':v_code.strip()[:4],
                                                                                                                                '__VIEWSTATE':re.findall(r'id="__VIEWSTATE" value="(.+?)"', login_page)[0],
                                                                                                                                '__EVENTVALIDATION':re.findall(r'id="__EVENTVALIDATION" value="(.+?)"', login_page)[0]
                                                                                                                            })
        if re.search(r'BullShow',login_page):
            print '登录成功'
        else:
            print '登录失败,重新登录'
            login()

tr_pattern=re.compile(r'<tr class="hjtr(2|3)".+?>(.+?)</tr>', re.S)
td_pattern=re.compile(r'<td>(.*?)</td>',re.S)
vstate_pattern=re.compile(r'id="__VIEWSTATE" value="(.+?)"')

def getData(airCode,fr,to):
        page=c.request('http://www.517na.cn/CaiGou/PolicyShow.aspx')
        page=c.request('http://www.517na.cn/CaiGou/PolicyShow.aspx',{
                                                                                                                 '__VIEWSTATE':vstate_pattern.findall(page)[0],
                                                                                                               'BtnQuery' :'查询',
                                                                                                                  'DropAircoCode':   airCode,
                                                                                                                'FromCity$dropCity':    fr,
                                                                                                                'FromCity$txtCity':   fr,
                                                                                                                'ToCity$dropCity' :   to,
                                                                                                                'ToCity$txtCity '  : to,
                                                                                                                'selPolicyType':    '0',
                                                                                                                'txtTime':    time.strftime("%Y-%m-%d", time.localtime())
                                                                                                            })
        l=tr_pattern.findall( page)
        l=[i[1] for i in l]
        l=[td_pattern.findall(i) for i in l]
        return l

def t_getData(airCode,airports):
        for j in airports:
                for k in airports[:]:
                      l=getData(airCode,j,k)
                      for i in l:
                            print i
if __name__ == '__main__':
        airCompanys=['3U', '8C', '8L', '9C', 'AB', 'BK', 'CA', 'CN', 'CZ', 'EU', 'FM', 'G5', 'GS', 'HO', 'HU', 'JD', 'JR', 'KN', 'KY', 'MF', 'MU', 'NS', 'PN', 'SC', 'VD', 'YA', 'ZH']
        airports=['ALA', 'AKU', 'AKA', 'AAT', 'MFM', 'AQG', 'AVA', 'AOG', 'AYN', 'BFU', 'BHY', 'NAY', 'PEK', 'BPL', 'AEB', 'BSD', 'BAV', 'NBS', 'CGQ', 'BPX', 'CGD', 'CTU', 'CIF', 'CNI', 'CKG', 'CSX', 'CHG', 'CIH', 'CZX', 'CCC', 'DDG', 'DNH', 'DLU', 'DLC', 'DQA', 'DIG', 'DAT', 'DOY', 'DAX', 'DZU', 'DSN', 'ENH', 'FUO', 'FUG', 'FYN', 'FOC', 'GOQ', 'GHN', 'KWL', 'KHH', 'GYU', 'GYS', 'KWE', 'KOW', 'CAN', 'HIA', 'HDG', 'HRB', 'HFE', 'HET', 'HEK', 'HJJ', 'HAK', 'HLD', 'HUN', 'HMI', 'TXN', 'HTN', 'HNY', 'HZG', 'HGH', 'HUZ', 'KNC', 'JDZ', 'JGS', 'JHG', 'JJN', 'JIU', 'JIL', 'JMU', 'KNH', 'TNA', 'JNG', 'CHW', 'JXA', 'JGN', 'CYI', 'JZH', 'CJU', 'JNZ', 'SHS', 'KCA', 'KGT', 'KRL', 'KRY', 'KMG', 'KJI', 'KHG', 'LLB', 'LCX', 'LNJ', 'LJG', 'HZH', 'LIA', 'LXA', 'LHN', 'LUZ', 'LXI', 'LYG', 'KYD', 'LYI', 'LYA', 'LHW', 'LZY', 'LZH', 'LZO', 'MDG', 'MZG', 'OHE', 'LUM', 'MIG', 'NZH', 'LZN', 'MFK', 'MXZ', 'NGB', 'KHN', 'NAO', 'NKG', 'NLT', 'ERL', 'NNG', 'NTG', 'NNY', 'HCN', 'PIF', 'CMJ', 'WOT', 'PZI', 'TAO', 'SHP', 'IQM', 'NDG', 'IQN', 'HIN', 'JUZ', 'PVG', 'SHA', 'SJW', 'SYM', 'SWA', 'SYX', 'SHE', 'SZX', 'SZV', 'TSA', 'TPE', 'TCG', 'TCZ', 'GNI', 'TTT', 'TNH', 'TSN', 'TGO', 'TNN', 'TEN', 'TVS', 'THQ', 'TYN', 'RMQ', 'TXG', 'HYN', 'WEF', 'WEH', 'WUA', 'WHU', 'WUH', 'HLH', 'URC', 'WNH', 'WUX', 'WUS', 'WXN', 'WNZ', 'WUZ', 'XIY', 'XIC', 'XEN', 'XFN', 'HKG', 'XIL', 'XMN', 'XNN', 'XIN', 'XNT', 'ACX', 'XUZ', 'ENY', 'YBP', 'YNZ', 'LDS', 'YIH', 'INC', 'YCU', 'YNJ', 'YLN', 'UYN', 'YUA', 'YIN', 'YUS', 'YNT', 'YIW', 'LLF', 'JIQ', 'ZUH', 'DYG', 'ZHA', 'HSN', 'ZAT', 'ZHY', 'ZYI', 'CGO']
        login()
        start=time.time()
        threads=[]
        for i in airCompanys:
                threads.append(threading.Thread(target=t_getData,args=(i,airports)))
        for i in threads:
              i.start()
        while reduce(lambda x,y:x or y,[ i.isAlive() for i in threads]):
                time.sleep(100)
                print time.time()
        end=time.time()
        print end,start,end-start

3 楼 全冠清 2011-03-10  
#!/usr/bin/python
 
#coding=utf-8
 
import os,os.path,re,httplib,urlparse
 
 
def validateUrl(url):
        up=urlparse.urlparse(url)
        http=httplib.HTTP(up.netloc)
        http.putrequest('GET',up.path)
        http.putheader('Accept','*/*')
        http.endheaders()
        errcode,errmsg,headers=http.getreply()
        if errcode==200:
            return False
        else:
            return True
 
def main(path,types):
    l=[]
    for root,dirs,files in os.walk(path):
        for file in files:
            for i in types:
                if file.endswith(i):
                   page=open(os.path.join(root,file)).read()
                   if re.search(r'http://image30\.19360\.cn/', page,re.M):
                       l+= [i[0] for  i in  re.findall(r'(http://image30\.19360\.cn/(\w|\.|_|/)+(\.gif|\.png|\.jpg|\.css))', page,re.M)]
    return filter(validateUrl,l)
 
 
if __name__=='__main__':
    types=['.jsp','.html','.htm','.css']
    path="D:\\workspace\\19e3.0"
    l= main(path,types) 
    file=open('temp.txt','w')
    for i in l:
        print i.replace(r'http://image30.19360.cn','')
    file.writelines([i.replace(r'http://image30.19360.cn','')+'\n' for i in l])   
   
 
2 楼 全冠清 2011-02-12  
图片地址切换
#!/usr/bin/python
 
#coding=utf-8
 
import os,os.path,re
 
 
def main(path,rules):
    types=[key for key in rules]
    for root,dirs,files in os.walk(path):
        for file in files:
            for i in rules:
                if file.endswith(i):
                   page=open(os.path.join(root,file)).read()
                   if re.search(r'\.jpg|\.gif|\.png', page):
                      for i in rules[i]:
                          if len(i)==3:
                              page=re.sub(i[0], i[1],page)
                          else:
                              page=page.replace(*i)
                      open(os.path.join(root,file),'w').write(page)
                      print os.path.join(root,file)
 
 
if __name__=='__main__':
    rules={".jsp":[(r'http://image21.test.cn:18060', r'http://image30.19360.cn'),
                   (r'src="/(?=(\w|\.|_|/)+(gif"|png"|jpg"))',r'src="http://image30.19360.cn/',True),
                   (r'url(/',r'url(http://image30.19360.cn/'),
                   (r"src='/(?=(\w|\.|_|/)+(gif'|png'|jpg'))",r"src='http://image30.19360.cn/",True)],
       ".css":[(r'http://image21.test.cn:18060', r'http://image30.19360.cn'),
               (r'url(/',r'url(http://image30.19360.cn/')],
       ".js":[(r'http://image21.test.cn:18060', r'http://image30.19360.cn')]}
    path="D:\\workspace\\testRefactoring\\WebRoot"
    main(path,rules) 
1 楼 全冠清 2011-02-12  
python删除svn文件
for root,dirs,file in os.walk("D:\\workspace\\test"):
    if(root[-4:]==".svn"):
        print root
        os.system('attrib -r '+root+"\\*.* /s")
        shutil.rmtree(root)

相关推荐

    python实现MP4文件递归查找功能

    在这个场景中,我们关注的是如何使用Python来实现一个递归查找功能,特别是针对.mp4视频文件。递归查找允许程序在给定目录及其所有子目录中搜索特定类型的文件。这种功能在处理大量文件时非常有用,例如在多媒体管理...

    python3.7安装pyspider修复文件

    1. 检查所有报错信息,找出不兼容的模块或函数。 2. 更新Pyspider及其依赖库到最新版本,确保它们支持Python3.7。 3. 查阅官方文档或社区论坛,寻找已知的Python3.7兼容性问题和解决方案。 4. 如果需要,修改源代码...

    Python实现PDF图片文件压缩

    2. **提取图片**:利用PDFMiner或其他解析工具解析PDF,找出包含图像的数据块。 3. **解码图像**:将PDF中的图像数据解码为PIL可以识别的格式。 4. **压缩图像**:使用PIL的压缩功能,如`Image.save()`方法,调整...

    Python实现导出Word文档中的所有图片、嵌入的文件

    - 对于嵌入文件,使用`oletools`或类似库解析OLE结构,找出并导出嵌入文件。 - 整合所有导出的资源,形成一个完整的文件集合。 7. **环境设置**: - `venv`文件夹是Python的虚拟环境,用于隔离项目所需的库版本...

    Python基础项目教程-教案教学设计第6章-Python文件操作.docx

    - **作业二**:编写程序,快速找出两个相似文本文件的不同之处。 - **思路**:分别读取两个文件的内容,逐行对比,统计不同的地方。 #### 八、教学评价 - **评价方式**:以小组为单位,根据完成案例的质量进行评价...

    python批量修改windows电视剧文件名称 rename_file.zip

    例如,使用`re.search()`或`re.findall()`可以找出文件名中符合特定模式(如"第XX集")的部分。 4. **批量处理**:批量修改文件名通常涉及到遍历目录和处理每个文件。Python的`for`循环结合`os`模块可以实现这一点...

    python反编译.zip

    Pyinstxtractor通过解析exe的内部结构,找出隐藏的pyc文件和其他数据,使得我们有机会恢复原始的Python代码。 另一个重要的反编译工具是"Easy Python Decompiler",正如其名,它简化了Python字节码的反编译过程。....

    Python-CERTKeyfinder用于查找和分析私人和公共密钥文件的工具包括对AndroidAPK文件的支持

    1. **全面搜索**:该工具能够在文件系统中进行全面搜索,找出所有可能的密钥文件。这包括常见的PE文件(Windows可执行文件)、证书文件(.cer、.pem、.crt等)以及OpenSSL密钥文件(.key)等。 2. **Android APK...

    利用python查找相同的重复的图片

    1. **PIL (Python Imaging Library)**:用于图像处理,如打开、修改和保存各种图像文件格式。它还支持基本的图像处理功能,如裁剪、旋转、调整大小等。 2. **hashlib**:提供哈希函数,如MD5和SHA系列,用于计算文件...

    python办公自动化源码集锦-自动清理重复文件

    3. 查找重复:遍历哈希字典,找出具有相同哈希值的文件组。 4. 内容验证:对于哈希值相同的文件,进行内容比对确认。 5. 删除重复:根据设定的策略删除重复文件,确保不误删重要文件。 四、安全与效率考虑 在实际...

    python 开发解决使用pystrich模块的程序打包找不到字体文件的错误demo源码+使用说明.zip

    理解错误的原因:当我们在本地开发环境中运行代码时,字体文件可能位于项目目录下的某个特定文件夹,而当我们使用像`py2exe`或`cx_Freeze`这样的工具将程序打包成可执行文件时,这些工具通常不会自动包含非Python的...

    python根据豆瓣电影API批量修改视频文件名

    本话题主要关注如何使用Python结合豆瓣电影API来实现批量修改本地视频文件的命名,以使其标准化。 首先,我们需要了解“豆瓣电影API”。豆瓣是一个提供电影、书籍、音乐等评分和评论的平台,它开放了一部分API供...

    文件图形多媒体-用Python实现文件对比分析并生成报告-Python源码示例.zip

    2. **文件对比分析**:文件对比通常是为了找出两个或多个文件之间的相似性和差异性。Python的difflib库提供了这个功能,它能够比较文本文件的行,并生成易于理解的差异报告。此外,对于二进制文件,可以使用hashlib...

    python27.dll文件

    5. **使用依赖管理工具**:有些工具如Dependency Walker可以帮助分析程序的依赖关系,找出其他可能缺失的dll文件,以便一并解决。 6. **更新或回滚QT版本**:如果问题仅出现在特定QT版本中,考虑更新到最新版本,...

    Python读取Word文件

    `python-docx`是一个用于处理.docx文件(Microsoft Word 2007及以上版本)的Python库,它提供了创建、修改和读取Word文档的功能。 ##### 2.1 安装`python-docx` 如果你还没有安装`python-docx`库,可以通过以下...

    python2.7.5源码与python27_d.dll

    3. 调试Python核心,找出潜在的bug并修复。 4. 创建Python的本地扩展模块,使用C/C++与Python交互。 **动态链接库(DLL):python27_d.dll** `python27_d.dll` 是Python的动态链接库文件,其中“d”表示“debug”...

    一个简单的文件批量重命名工具——Python脚本

    1、找出当前目录下超过3个月未操作过的文件,并将其重命名,在原本文件名的开头加上最后修改日期,如 “text.py” 改为 “2020-5-17-text.py”。 2、创建一个新文件夹叫backup,将所有重命名的文件都添加到压缩包...

    使用python3通过python-gitlab的API来获取gitlab的仓库、用户等信息

    这个实践性的教程基于一个已修改的Python27脚本,使其兼容Python3.6,并包含了一个名为`get-gitInfo.py`的实用脚本。 首先,让我们了解`python-gitlab`库。这是一个Python绑定库,它提供了与GitLab API交互的功能,...

    python2712.rar

    13. **性能分析**:Python 提供了 `cProfile` 模块,用于性能分析,帮助开发者找出代码中的瓶颈。 这些只是 Python 2.7.12 API 的一部分知识点,实际上,整个 API 还包含许多其他模块、函数和特性。Python 2.7.12 ...

Global site tag (gtag.js) - Google Analytics