python查找目录下指定扩展名的文件实例,Python实现替换文件中指定内容的方法
分类:微服架构

python查找指定具有相同内容文件的方法,

本文实例讲述了python查找指定具有相同内容文件的方法。分享给大家供大家参考。具体如下:

python代码用于查找指定具有相同内容的文件,可以同时指定多个目录
调用方式:python doublesdetector.py c:;d:;e: > doubles.txt

# Hello, this script is written in Python - http://www.python.org
# doublesdetector.py 1.0p
import os, os.path, string, sys, sha
message = """
doublesdetector.py 1.0p
This script will search for files that are identical
(whatever their name/date/time).
 Syntax : python %s <directories>
   where <directories> is a directory or a list of directories
   separated by a semicolon (;)
Examples : python %s c:windows
      python %s c:;d:;e: > doubles.txt
      python %s c:program files > doubles.txt
This script is public domain. Feel free to reuse and tweak it.
The author of this script Sebastien SAUVAGE <sebsauvage at sebsauvage dot net>
http://sebsauvage.net/python/
""" % ((sys.argv[0], )*4)
def fileSHA ( filepath ) :
  """ Compute SHA (Secure Hash Algorythm) of a file.
    Input : filepath : full path and name of file (eg. 'c:windowsemm386.exe')
    Output : string : contains the hexadecimal representation of the SHA of the file.
             returns '0' if file could not be read (file not found, no read rights...)
  """
  try:
    file = open(filepath,'rb')
    digest = sha.new()
    data = file.read(65536)
    while len(data) != 0:
      digest.update(data)
      data = file.read(65536)
    file.close()
  except:
    return '0'
  else:
    return digest.hexdigest()
def detectDoubles( directories ):
  fileslist = {}
  # Group all files by size (in the fileslist dictionnary)
  for directory in directories.split(';'):
    directory = os.path.abspath(directory)
    sys.stderr.write('Scanning directory '+directory+'...')
    os.path.walk(directory,callback,fileslist)
    sys.stderr.write('n')
  sys.stderr.write('Comparing files...')
  # Remove keys (filesize) in the dictionnary which have only 1 file
  for (filesize,listoffiles) in fileslist.items():
    if len(listoffiles) == 1:
      del fileslist[filesize]
  # Now compute SHA of files that have the same size,
  # and group files by SHA (in the filessha dictionnary)
  filessha = {}
  while len(fileslist)>0:
    (filesize,listoffiles) = fileslist.popitem()
    for filepath in listoffiles:
      sys.stderr.write('.')
      sha = fileSHA(filepath)
      if filessha.has_key(sha):
        filessha[sha].append(filepath)
      else:
        filessha[sha] = [filepath]
  if filessha.has_key('0'):
    del filessha['0']
  # Remove keys (sha) in the dictionnary which have only 1 file
  for (sha,listoffiles) in filessha.items():
    if len(listoffiles) == 1:
      del filessha[sha]
  sys.stderr.write('n')
  return filessha
def callback(fileslist,directory,files):
  sys.stderr.write('.')
  for fileName in files:
    filepath = os.path.join(directory,fileName)
    if os.path.isfile(filepath):
      filesize = os.stat(filepath)[6]
      if fileslist.has_key(filesize):
        fileslist[filesize].append(filepath)
      else:
        fileslist[filesize] = [filepath]
if len(sys.argv)>1 :
  doubles = detectDoubles(" ".join(sys.argv[1:]))
  print 'The following files are identical:'
  print 'n'.join(["----n%s" % 'n'.join(doubles[filesha]) for filesha in doubles.keys()])
  print '----'
else:
  print message

希望本文所述对大家的Python程序设计有所帮助。

本文实例讲述了python查找指定具有相同内容文件的方法。分享给大家供大家参考。具体如下: p...

本文实例讲述了Python实现的根据文件名查找数据文件功能。分享给大家供大家参考,具体如下:

python查找目录下指定扩展名的文件实例,

本文实例讲述了python查找目录下指定扩展名的文件。分享给大家供大家参考。具体如下:

这里使用python查找当前目录下的扩展名为.txt的文件

import os
items = os.listdir(".")
newlist = []
for names in items:
  if names.endswith(".txt"):
    newlist.append(names)
print newlist

希望本文所述对大家的Python程序设计有所帮助。

本文实例讲述了python查找目录下指定扩展名的文件。分享给大家供大家参考。具体如下: 这里使...

Python实现替换文件中指定内容的方法,python替换

本文实例讲述了Python实现替换文件中指定内容的方法。分享给大家供大家参考,具体如下:

这里使用python编写的程序,实现如下功能:将文件中的指定子串 修改为 另外的子串

编写的python程序,文件名是file_replace.py,具体代码如下:

#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import sys,os
if len(sys.argv)<4 or len(sys.argv)>5:
 sys.exit('There needs four or five parameters')
elif len(sys.argv)==4:
 print 'usage:./file_replace.py old_text new_text filename'
else:
 print 'usage:./file_replace.py old_text new_text filename --bak'
old_text,new_text=sys.argv[1],sys.argv[2]
file_name=sys.argv[3]
f=file(file_name,'rb')
new_file=file('.%s.bak' % file_name,'wb')#文件名以.开头的文件是隐藏文件
for line in f.xreadlines():#f.xreadlines()返回一个文件迭代器,每次只从文件(硬盘)中读一行
 new_file.write(line.replace(old_text,new_text))
f.close()
new_file.close()
if '--bak' in sys.argv: #'--bak'表示要求对原文件备份
 os.rename(file_name,'%s.bak' % file_name) #unchanged
 os.rename('.%s.bak' % file_name,file_name) #changed
else:
 os.rename(file_name,'wahaha.txt')#此处也可以将原文件删除,以便下一语句能够正常执行
 os.rename('.%s.bak' % file_name,file_name)

下面是代码执行的一个例子:

[email protected]:~$ more hello.txt
Hello python
Hello world
python Hello
world Hello
[email protected]:~$ python file_replace.py Hello love hello.txt --bak
usage:./file_replace.py old_text new_text filename --bak
[email protected]:~$ ls
Desktop Documents  file_replace.py Music systemExit.py
diff1.txt Downloads  hello.txt Pictures Templates
diff.txt examples.desktop hello.txt.bak Public Videos
[email protected]:~$ more hello.txt
love python
love world
python love
world love
[email protected]:~$ more hello.txt.bak
Hello python
Hello world
python Hello
world Hello
[email protected]:~$

更多Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

本文实例讲述了Python实现替换文件中指定内容的方法。分享给大家供大家参考,具体如下:...

#-*- coding: UTF-8 -*-
import os
import shutil
AllFiles=[]
NameFiles=[]
def findFie(filePath):
 pathDir = os.listdir(filePath)
 for allDir in pathDir:
  # print(allDir)
  AllFiles.append(allDir)
  #pass
#filepath = 'C:\Users\IBM_ADMIN\Desktop\cognos\datastage\71&72\71\71sns'
#copyfile = 'C:\Users\IBM_ADMIN\Desktop\cognos\datastage\71&72\71mtp'
filepath = 'C:\Users\IBM_ADMIN\Desktop\cognos\datastage\71&72\72\72sns'
copyfile = 'C:\Users\IBM_ADMIN\Desktop\cognos\datastage\71&72\72mtp'
shutil.rmtree(copyfile)
os.mkdir(copyfile)
findFie(filepath)
def readFile():
 readFile = open('./jobname')
 i = 0
 for eachLine in readFile:
  i= i + 1
  #print(eachLine)
  NameFiles.append(eachLine.replace('n','')) # 去掉换行符
readFile()
#字符串比较
def doTheCompare():
 for x in NameFiles:
  print(x)
  for y in AllFiles:
   if x == y :
    copyFrom = os.path.join(filepath,x)
    copyTo = os.path.join(copyfile,x)
    shutil.copyfile(copyFrom,copyTo)
   else:
    pass
    #print ("file not find under sns process,thanks .please check with wumi.")
doTheCompare()

附:这里再补充一个更为简单的文件搜索功能示例:

# -*- coding:utf-8 -*-
import os
def search(path=".", name="1"):
  for item in os.listdir(path):
    item_path = os.path.join(path, item)
    if os.path.isdir(item_path):
      search(item_path, name)
    elif os.path.isfile(item_path):
      if name in item:
        print(item_path)
if __name__ == "__main__":
  search(path=r"D:360Downloads",name="dll")

更多Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

您可能感兴趣的文章:

  • python实现在目录中查找指定文件的方法
  • python 查找文件夹下所有文件 实现代码
  • python查找目录下指定扩展名的文件实例
  • 简单掌握Python中glob模块查找文件路径的用法
  • Python3实现从指定路径查找文件的方法
  • 在Python中使用glob模块查找文件路径的方法
  • python查找指定具有相同内容文件的方法
  • Python实例分享:快速查找出被挂马的文件
  • python在指定目录下查找gif文件的方法
  • 对Python 文件夹遍历和文件查找的实例讲解
  • 如何利用python查找电脑文件

本文由10bet手机官网发布于微服架构,转载请注明出处:python查找目录下指定扩展名的文件实例,Python实现替换文件中指定内容的方法

上一篇:JS面向对象编程详解,js对象的构造和继承实现代码 下一篇:没有了
猜你喜欢
热门排行
精彩图文