Bueno, haciendo algunas pruebas más he conseguido entender lo de las
máscaras de bits.

Lo he resuelto así:

    os.chmod(string, (0777 & ~stat.S_IXUSR))

que supongo que era la manera que me propuso lasiozoillo.

Gracias a todos por la ayuda!!

Por cierto...

En el primer mail dije que la duda era para un proyecto de traducción de
código PHP a Python.

El programa está en una fase muy preliminar, pero si queréis verlo y/o
colaborar, se puede descargar desde:

http://code.google.com/p/php2py/

Un saludo!

2011/9/13 Enric Florit <efz1...@gmail.com>

> Primero, gracias a los dos por responder.
>
> He estado revisando la documentación de python y he hecho algunas pruebas
> como esta:
>
>     bin(0777 & ~os.stat(path).st_mode)
>
> Pero esto sólo me devuelve una cadena binaria (el comportamiento esperado
> de la función)
>
> Pero si intento usar el resultado de la función bin() a os.chmod(), me dice
> que el argumento tiene que ser un entero:
>
> File "php2py.py", line 331, in <module>
>     os.chmod(string, mask)
> TypeError: an integer is required
>
> Es que estoy pasando por alto algo o no entendí correctamente lo que me
> habéis dicho?
>
>
> 2011/9/13 Jose Caballero <jcaballero....@gmail.com>
>
>>
>>
>>
>> > .
>>
>> >
>> > Para solventar esto, he intentado usar de nuevo os.chmod, pero si
>> primero le adjudico permisos de lectura y luego de escritura, se borran los
>> de lectura, y viceversa.
>> >
>>
>> Puedes adjudicar más de uno a la vez, operando primero a nivel de bits.
>> stat.S_blabla | stat.S_bleble | stat.S_bloblo ....
>>
>> O, en este caso particular, simplemente aplicando una máscara como ya te
>> han comentado.
>>
>>
>> Suerte,
>> Jose
>> _______________________________________________
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
>
>
> --
> $$$$$   $$    $$   $$$$$   $$       $$$
> $$         $$$  $$   $$   $$           $$
> $$$       $$ $ $$   $$$$$   $$    $$
> $$         $$  $$$   $$ $$    $$     $$
> $$$$$   $$    $$   $$  $$   $$       $$$
>



-- 
$$$$$   $$    $$   $$$$$   $$       $$$
$$         $$$  $$   $$   $$           $$
$$$       $$ $ $$   $$$$$   $$    $$
$$         $$  $$$   $$ $$    $$     $$
$$$$$   $$    $$   $$  $$   $$       $$$
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a