Renombrar fichero python

publicado por: Anonymous

¿Alguien sabe cómo renombrar un fichero con Python?

Lo que hago es que finalice la funcion leer y luego llamo la otra función para que lo renombre. No hay manera de hacer las dos cosas al mismo tiempo, me dice que otro proceso esté utilizando el archivo.

Este es mi código:

import csv

def leer():
m1=open("archivo1.csv","rb")
m1_csv=csv.reader(m1)
var = ""


for i,x in enumerate(m1_csv):


    lista0 = x[0:1]
    lista1 = x[1:2]
    header = str1 = ''.join(lista0)
    header1 = header[9:13]
    str1 = ''.join(lista1)
    str1 = str1[1:]
    str2 = str1[0:32]


    listas = []
    listas.append("The next header ")
    listas.append(header1)
    listas.append("")
    if(header1=="goin"):
        listas.remove("")
        listas.remove("goin")
        listas.append("error")  
        listas.append(" the hash is outdate: "+str2)        
    elif(header1=="omin"):
        listas.remove("")
        listas.remove("omin")
        listas.append("error")  
        listas.append(" the hash is outdate: "+str2)            
    elif( str2 == "074e3e3e82db7610dbeafd95c22d20a2"):
        listas.remove("")
        listas.append(" is using for speaking")
        listas.append(" example bla bla bla the packet")
        listas.append(" Incident: you can get powers")



    listo=["OUTGOING HEADERS"]
    listos=["INCOMING HEADERS"]

    m2_c=csv.writer(open("archivo2.csv","a"),lineterminator='n')
    if(i==0):
        m2_c.writerow(listo)
    if(i==468):
        m2_c.writerow(listos)
    m2_c.writerow(listas)




m1.close()

Probe a hacerlo con el método os pero me da un error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "prueba1.py", line 64, in <module>
    leer()
  File "prueba1.py", line 54, in leer
    os.remove("archivo1.csv")
WindowsError: [Error 32] Le processus ne peut pas accÚde
ier est utilisÚ par un autre processus: 'archivo1.csv'

solución

En principio tendría que funcionar, aunque yo prefiero usar:

with open(file) as csv_data:
     data = csv.reader(csv_data, delimiter=',', quotechar='"')
     # Process data

Por otro lado, para renombrar un archivo lo que hago es:

import os
os.rename(old_filename_with_path, new_filename_with_path)
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *