當前位置:編程學習大全網 - 編程語言 - 如何進行手機多文件編程

如何進行手機多文件編程

ziprar.py

__作者_ _?=?威利日

#!/usr/bin/env?python3

進口?操作系統(Operating System)

進口?[計]系統復制命令(system的簡寫)

進口?時間

進口?舒蒂爾

進口?zipfile

從哪裏?zipfile?進口?ZIP _放氣

#Zip文件處理類

班級?ZFile(對象):

def?__init__(self,fname,?mode='r ',?basedir=“”):

self.fname?=?fnname

self.mode?=?方式

如果?self.mode?在?(‘w’,?a’):

self.zfile?=?zipfile。ZipFile(fname,模式,?壓縮=ZIP_DEFLATED)

否則:

self.zfile?=?zipfile。ZipFile(fname,自我模式)

self.basedir?=?basedir

如果?不是嗎?self.basedir:

self.basedir?=?os.path.dirname(fname)

def?addfile(self,路徑,?arcname=None):

路徑?=?path.replace('//',?'/')

如果?不是嗎?arcname:

如果?path.startswith(self.basedir):

arcname?=?路徑[len(self.basedir):]

否則:

arcname?=?''

self.zfile.write(路徑,?arcname)

def?addfiles(self,路徑):

為了什麽?路徑?在?路徑:

如果?isinstance(路徑,元組):

self . addfile(*路徑)

否則:

self.addfile(路徑)

def?關閉(自己):

self.zfile.close()

def?提取_到(自我,?路徑):

為了什麽?p?在?self.zfile.namelist():

自解壓(p,?路徑)

def?提取(自我,?fname,?路徑):

如果?不是嗎?fname.endswith('/'):

fn?=?os.path.join(路徑,?fname)

ds?=?os.path.dirname(fn)

如果?不是嗎?os.path.exists(ds):

os.makedirs(ds)

用什麽?打開(fn,WB’)?作為?女:

f.write(self.zfile.read(fname))

#創建壹個Zip文件

def?createZip(zfile,文件):

z?=?ZFile(zfile,?w’)

z.addfiles(文件)

關閉()

#將Zip文件解壓縮到指定的文件夾

def?extractZip(zfile,路徑):

z?=?ZFile

z.extract_to(路徑)

關閉()

#將rar解壓縮到指定的文件夾

def?extractRar(zfile,路徑):

rar_command1?=?“WinRAR.exe?x?-伊布克?%s?%s "?%?(zfile,?路徑)

rar_command2?=?r " " C:\ winrar . exe "?x?-伊布克?%s?“%s”嗎?%?(zfile,?路徑)

嘗試:

res?=?操作系統(rar_command1)

如果?res?==?0:

打印("路徑?好吧。”)

除了:

嘗試:

res?=?操作系統(rar_command2)

如果?res?==?0:

打印(“成功?去哪?unrar?那個?文件?{}."。格式(路徑))

除了:

打印('錯誤:?可以嗎?不是嗎?unrar?那個?文件?{}'.格式(路徑))

#?將多個壓縮文件解壓到壹個臨時文件夾中。

def?提取文件(文件列表):

紐迪爾?=?str(int(time.time()))

為了什麽?fn?在?文件列表:

subdir?=?os.path.join(newdir,?fn)

如果?不是嗎?os.path.exists(子目錄):

os.makedirs(子目錄)

如果?fn.endswith('。zip’):

extractZip(fn,子表盤)

埃利夫?fn.endswith('。rar’):

extractRar(fn,子表盤)

回歸?紐迪爾

#?在文件夾中找到壹些文件。返回壹個文件,其內容包含findstr_list中的所有字符串。

def?findstr_at(basedir,file_list,?findstr_list):

文件?=?[]

為了什麽?r,?ds,?fs?在?os.walk(basedir):

為了什麽?fn?在?fs:

如果?fn?在?文件列表:

用什麽?open(os.path.join(r,fn))?作為?女:

s?=?閱讀()

如果?全部(我?在?s?為了什麽?我?在?findstr_list):

files.append(os.path.join(r,fn))

回歸?文件

如果?__name__?==?__main__ ':

文件?=?【我?為了什麽?我?在?sys.argv[1:]?如果?不是嗎?I .以('-')開頭]

解壓縮文件?=?【我?為了什麽?我?在?文件?如果?i.endswith('。zip’)?還是?i.endswith('。rar')]

xmlfiles?=?【我?為了什麽?我?在?文件?如果?i.endswith('。xml')]

save_unzipdir?=?真的嗎?如果?-是嗎?在?sys.argv?不然呢?錯誤的

findstr?=?[i.split('=')[-1]?為了什麽?我?在?sys.argv?如果?I .開始於('- find=')]

findstring?=?',?'。join(['`{} `'。格式(壹)?為了什麽?我?在?findstr])

紐迪爾?=?提取文件(解壓縮文件)

結果=?findstr_at(newdir,xmlfiles,?findstr)

如果?不是嗎?結果:

味精?=?沒有嗎?的?那個?文件?包含?那個?鑒於?字符串?{}.'

print(msg.format(findstring))

否則:

味精?=?'{}?文件?包含?那個?鑒於?字符串?{}:'

print(msg.format(len(result),?findstring))

打印(' \n '。join([i.replace(newdir+os.sep,?'')?為了什麽?我?在?已排序(結果)])

如果?不是嗎?save_unzipdir:

shutil.rmtree(newdir)$?python3?ziprar.py?aaa.zip?aaa2.zip?aaa3.zip?aaa.xml?aaa1.xml?aaa2.xml?- find="It?曾經是"?- find="when "

沒有嗎?的?那個?文件?包含?那個?鑒於?字符串?“它?是`,?“什麽時候”。

$?python3?ziprar.py?aaa.zip?aaa2.zip?aaa3.zip?aaa.xml?aaa1.xml?aaa2.xml?- find="It?曾經是"?- find="I "

2?文件?包含?那個?鑒於?字符串?“它?是`,?`我`:

aaa.zip/aaa2.xml

aaa2.zip/aaa2.xml

$?python3?ziprar.py?aaa.zip?aaa2.zip?aaa3.zip?aaa.xml?aaa1.xml?aaa2.xml?- find="It?曾是”

2?文件?包含?那個?鑒於?字符串?“它?was `:

aaa.zip/aaa2.xml

aaa2.zip/aaa2.xml

  • 上一篇:美國研究生留學 統計學專業分支有哪些?
  • 下一篇:高分VB6.0的問題 遠程高手進
  • copyright 2024編程學習大全網