es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de permiso: [Errno 1] para os.rename como acción rápida.

Esta pregunta representa el último problema encontrado al resolver otro problema. Permítanme explicar primero el problema actual y dejar la dificultad inicial al final.

os.rename(old_path, new_path)

Este comando de Python funciona cuando se ejecuta el script de Python en Automator (usando el botón de ejecución en la parte superior derecha).

/usr/local/bin/python3 "/Users/user/Library/Scripts/move.py"

Sin embargo, cuando se ejecuta como una acción rápida, arroja el siguiente error:

La acción "Ejecutar secuencia de comandos de shell" encontró un error: "Traceback (most recent call last):
File "/Users/user/Library/Scripts/move.py", line 6, in <module>
os.rename(folder_path, folder_nath)
PermissionError: [Errno 1] Operación no permitida:

Todas las soluciones sugeridas me dicen que otorgue acceso completo al disco a varios programas. Sin embargo, después de haberlo hecho para Terminal, Finder, Automator y bash, todavía veo el mismo error. Incluso cambié los permisos de la carpeta que se va a renombrar en la pestaña “Obtener información”. Nada ha ayudado.


Este problema parece ser isomorfo a un problema que tuve anteriormente con otro comando que no funcionaba como una acción rápida.

os.system("""/bin/mv \"""" + old_path + """\" \"""" + new_path + """\"""")

Este comando funciona en PyCharm; funciona cuando ejecuto el código python que lo contiene en Automator (usando el botón de ejecución en la parte superior derecha).

/usr/local/bin/python3 "/Users/user/Library/Scripts/move.py"

Sin embargo, no funciona cuando ejecuto este flujo de trabajo como una acción rápida desencadenada por un atajo de teclado: la acción rápida claramente funciona ya que la rueda dentada gira, pero el archivo no se modifica.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con os.rename() en Quick Action

    El problema es que cuando se utiliza el comando os.rename() en una Quick Action, arroja un error de permiso incluso después de otorgar permiso a programas relevantes como Terminal, Finder, Automator y bash. El mensaje de error es:

    La acción "Ejecutar script de shell" encontró un error: "Traceback (llamada más reciente en último):
    Archivo "/Users/user/Library/Scripts/move.py", línea 6, en <módulo>
    os.rename(folder_path, folder_nath)
    PermissionError: [Errno 1] Operación no permitida:
    

    La dificultad inicial

    Este problema parece ser similar a otro problema encontrado anteriormente con el comando os.system() que no funcionaba en Quick Action pero sí en PyCharm y en el botón Ejecutar de Automator. En ese caso, no se mostraba mensaje de error. El comando que no funcionaba como Quick Action era:

    lang-python
    os.system("""/bin/mv \"""" + old_path + """\" \"""" + new_path + """\"""")
    </módulo>

Comments are closed.