目前,我的代碼使用XML文件的名稱作爲參數,以便獲取該文件,解析其中的一些內容並使用它來重命名該文件,我的意思是實際運行我的程序一次,該程序將搜索目錄中的每個XML文件(即使它在一個zip內),並使用與我遇到問題相同的參數對其進行重命名。使用python程序重命名linux目錄中的所有XML文件
#encoding:utf-8
import os, re
from sys import argv
script, nombre_de_archivo = argv
regexFecha = r'\d{4}-\d{2}-\d{2}'
regexLocalidad = r'localidad=\"[\w\s.,-_]*\"'
regexNombre = r'nombre=\"[\w\s.,-_]*\"'
regexTotal = r'total=\"\d+.?\d+\"'
fechas = []; localidades = []; nombres = []; totales = []
archivo = open(nombre_de_archivo)
for linea in archivo.readlines():
fechas.append(re.findall(regexFecha, linea))
localidades.append(re.findall(regexLocalidad, linea))
nombres.append(re.findall(regexNombre, linea))
totales.append(re.findall(regexTotal, linea))
fecha = str(fechas[1][0])
localidad = str(localidades[1][0]).strip('localidad=\"')
nombre = str(nombres[1][0]).strip('nombre=\"')
total = str(totales[1][0]).strip('total=\"')
nombre_nuevo_archivo = fecha+"_"+localidad+"_"+nombre+"_"+total+".xml"
os.rename(nombre_de_archivo, nombre_nuevo_archivo)
編輯:這將是一個例子。
目錄只包含3個文件以及程序。
silly.xml amusing.zip feisty.txt
所以,你運行程序而忽略爭強好勝,因爲它是一個txt文件,並讀silly.xml,TI然後解析「fechas,localidad,農佈雷,總「連接或追加或任何和用作爲silly.xml的新文件,然後該程序檢查zip是否有一個XML文件,如果它確實然後它做同樣的事情。
所以最終我們將不得不
20141211_sonora_walmart_2033.xml 20141008_sonora_starbucks_102.xml爭強好勝TXT amusing.zip
如果您顯示您的輸入(文件名列表)和您的預期輸出(修改的文件名),這是有道理的。 – Tomalak
您還需要關閉已打開的文件。 – Lafexlos
我編輯了一些類似的東西。 –