2011-04-25 29 views
11

Necesito hacer que un archivo sea legible y escribible en python. Actualmente el archivo es de solo lectura. Estoy corriendo en una máquina con Windows. Ejecuto el siguiente código:Leer/escribir archivos en Python

 

os.chmod(projectPath, stat.S_IWRITE | stat.S_IREAD) 
 

en un archivo que debe leerse/escribirse. Pero cuando trato de ejecutar el archivo que necesita escribir para ser leído, me sale el siguiente:

 

ISDEV : fatal error -2200: Could not overwrite file C:\WINDOWS\Temp\STixInstaller\STixInstallShield.ism 
 

Así que, obviamente, no está haciendo el archivo de lectura/escritura. Luego verifico los permisos del archivo y sigue siendo de solo lectura.

¿Alguna idea de por qué esto falla o si hay una manera más fácil de hacerlo, me falta?

+0

¿El archivo está bloqueado? –

+0

@RestRisiko ¿Cómo puedo saber si está bloqueado? – user489041

Respuesta

6

Creo que solo necesita el modo stat.S_IWRITE. que acaba de ejecutar una prueba con este código

def main(): 
    path = "C:\\temp\\log.txt" 
    os.chmod(path, stat.S_IWRITE) 

Y puse un archivo que fue de sólo lectura, no sólo, en tanto que cuando me encontré con S_IREAD lugar, se establece que lea de nuevo a sólo lectura

+0

¡Impresionante, gracias! – user489041

0

Asegúrese de tener permisos para cambiar el archivo. ¿Quién es el dueño del archivo? ¿Es el que ejecuta el script de Python? Todos estos deben tenerse en cuenta.

+0

Realmente se ejecuta como parte de un script de compilación que tiene acceso completo al archivo. Estaba pensando que quizás 'stat.S_IWRITE | stat.S_IREAD' en realidad no hace lo que creo que es o hay algo específico del sistema operativo que sucede aquí en Windows. – user489041