利用 Python 做批量檔案操作的任務

2021-05-07 11:13:21 字數 1693 閱讀 6853

今天做了乙個指令碼,其目的大致是讀取一系列壓縮包檔案(.gz),用 winrar 解壓後,對每個檔案進行一定的內容替換,然後另存成我們需要的檔案。

#!/usr/bin/env python

#-*- coding: gbk -*-##

自解壓日誌檔案,逐行替換後生成新檔案

#neil chen, 2006-4-27

#import

sysimport

urllib

import

win32api

#壓縮包所在目錄

src_dir =r

"e:/py/logreplace/src"#

解壓後的目錄

extracted_dir =r

"e:/py/logreplace/extracted"#

處理完的檔案存放目錄

target_dir =r

"e:/py/logreplace/target"#

查詢什麼字串?

替換為什麼?

replace_as_what ='

get '#

winrar 命令的引數格式

cmd_params_template =r

'e -y %s %s

'raw_files 

=urllib.os.listdir(src_dir)

#逐一解壓

forf 

inraw_files:

fpath 

=src_dir +"

//"+f

cmd_params 

=cmd_params_template 

%(fpath, extracted_dir +"

//")#

print cmd_params

win32api.shellexecute(0, none, 

'winrar.exe

', cmd_params, 

"c://

", false)

extracted_files 

=urllib.os.listdir(extracted_dir)

func 

=lambda

(x): x.replace(find_what, replace_as_what)

#替換,生成新檔案

forf2 

inextracted_files:    

fpath2 

=extracted_dir +"

//"+f2

fpath3 

=target_dir +"

//"+f2

raw_file 

=open(fpath2, 'r

')    

lines 

=raw_file.readlines()

new_lines 

=[func(x) 

forx 

inlines]

#print len(new_lines)

target_file 

=open(fpath3, 'w

')target_file.writelines(new_lines)

raw_file.close()

target_file.close()

利用python批量修改xml檔案

問題描述 對大量xml標籤進行修改floder的名字,以及path路徑。例如把1修改為train,把路徑修改為當前xml所在位置。xml格式如下 如下 usr bin python coding utf 8 import os import os.path from xml.etree.elemen...

原創 Python批量操作檔案,批量合併

最近幾個小夥伴在手動合併一些文字檔案,感覺可以用python批量實現,就有了這段 1 importos2 importre3 import sys4 5def printenter f1 每兩個檔案之間的換行操作 6 f1.write n n n 7for i in range 23 8 f1.wr...

利用python進行檔案操作

作者 wyh草樣 出處 什麼是檔案 檔案是系統儲存區域的乙個命名位置,用來儲存一些資訊,便於後續訪問。能夠在非易失性儲存器中實現持續性儲存,比如在硬碟上。當我們要讀取或者寫入檔案時,我們需要開啟檔案 在操作完畢時,我們需要關閉檔案,以便釋放和檔案操作相關的系統資源,因此,檔案操作的主要包括以下 開啟...