我尝试更改* .db文件的名称时收到错误消息

时间:2019-06-06 11:53:12

标签: python file rename

我试图更改* .db文件的名称,所以我将文件路径存储在变量中,然后使用用户使用GUI给出的名称来更改文件的名称。但是,当我尝试使用os.rename()方法重命名文件时,出现了错误。

起初,我在“用f:打开(文件路径)作为语句:”中遇到了这个问题,但是当我意识到打开的文件是我要更改的文件时,我得到了出来。我还试图制作一个原始目录的副本,然后使用该副本声明新的文件路径(即使知道它正在更改id地址)。

尽管我付出了所有努力,但仍然收到以下错误:     [WinError 32]该进程无法访问文件,因为该文件正在被另一个进程使用:'C:\ Users \ Aitor Cantero Crespo \ Desktop \ GUI_py \ soso.db'->'C:\ Users \ Aitor Cantero Crespo \ Desktop \ GUI_py \ sos.db'

代码如下:

def Modificar(NombreDelProyecto, NombreDelCliente, Descripcion, LetraRevision, FechaRevision, LetraFuerza, LetraMedida,     #|
                                            LetraControl, LetraComunicacion, MargenEnOrigen, MargenEnDestino):          #|- Variables de la función
    global Directorio


    Info =  [NombreDelProyecto, NombreDelCliente, Descripcion, LetraRevision, FechaRevision,                            #|
                        LetraFuerza, LetraMedida, LetraControl, LetraComunicacion, MargenEnOrigen, MargenEnDestino]     #|- Datos del proyecto

    Conexion = connect('{}'.format(Directorio))                                                                         # Crea la conexión con la base de datos


    with Conexion:                                                                                                      # Para trabajar con la base de datos

        Seleccion = Conexion.cursor()
        Seleccion.execute("""SELECT NombreDelProyecto FROM InfProy""")
        Nombre = Seleccion.fetchone()[0]

        Seleccion.execute("""UPDATE InfProy SET NombreDelCliente='{}', Descripcion='{}', LetraRevision='{}', FechaRevision='{}', 
                        LetraFuerza='{}', LetraMedida='{}', LetraControl='{}', LetraComunicacion='{}', MargenEnOrigen='{}', MargenEnDestino='{}'""".format(
                        Info[1], Info[2], Info[3], Info[4], Info[5], Info[6], Info[7], Info[8], Info[9], Info[10]))

    if Nombre != Info[0]:
        with Conexion:                                                                                                      # Para trabajar con la base de datos
            Seleccion = Conexion.cursor()
            Seleccion.execute("""UPDATE InfProy SET NombreDelProyecto='{}'""".format(Info[0]))

        print(Directorio)
        print(Nombre)
        print(Info[0])

        Directorio_N = Directorio.replace(str(Nombre), str(Info[0]))
        Directorio_N = path.normpath(Directorio_N)
        Directorio = path.normpath(Directorio)

        print(Directorio_N)

        rename(Directorio, Directorio_N)    

我不会遇到任何错误,因为我只是更改一个str并将其保存在其他变量中。我不明白为什么这种假象还在继续。

0 个答案:

没有答案