Forum >> Programmazione Python >> Files e Directory >> aprire file

Pagina: 1 2 Avanti

buonasera sono nuovo del forum quindi inizio con un saluto a tutti

volevo porre una domanda: come posso aprire un file nasconsto in scrittura senza ritornare un errore su python 3.4? e nel caso sarebbe possibile anche farlo con il file in sola lettura?

grazie anticipatamente

Mah, non vedo perché un file *solo* nascosto dovrebbe restituire un errore quando lo apri in scrittura. E' davvero *solo* nascosto?


In ogni caso, c'è poco da fare: se le proprietà del file non ne consentono l'apertura in scrittura, allora non puoi aprirlo in scrittura: né con Python né con qualsiasi altro sistema. Devi modificare le proprietà del file. Se vuoi restare "dentro" python per farlo, puoi usare os.chmod.

https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide
grazie RicPol per la risposta




prima di scrivere il post ho fatto una prova anche con un semplice file txt nascosto ed il problema si presenta pure in questo caso


non so se si può fare qualcosa nel frattempo per ovviare al problema ho pensato di aggiungere un'eccezione per non bloccare il ciclo




grazie del consiglio adesso faccio qualche ricerca per vedere come funziona "os.chmod" spero di risolvere, un saluto e a presto!

Ma mi fai vedere il codice che usi per aprire quel file? E lo stacktrace dell'errore che ricevi? E il sistema operativo (che suppongo sia windows, ma...)? Insomma, magari qualche informazione utile a capire di che cosa stiamo parlando davvero?


Perché insomma, stai usando una versione quasi obsoleta di python e ti consiglio di aggiornarla quanto prima, ma a parte questo non vedo proprio il problema. Poi magari sbaglio, eh... vado a memoria e non ho voglia di mettermi a fare prove finché non ne so qualcosa di più... ma non mi pare proprio che un file nascosto non si possa aprire in scrittura.

https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide
Perché insomma, stai usando una versione quasi obsoleta di python e ti consiglio di aggiornarla quanto prima, ma a parte questo non vedo proprio il problema. Poi magari sbaglio, eh... vado a memoria e non ho voglia di mettermi a fare prove finché non ne so qualcosa di più... ma non mi pare proprio che un file nascosto non si possa aprire in scrittura.
Infatti non c'è questa limitazione, ho appena fatto una prova (Win10 e Debian 9) e ti confermo che i tuoi ricordi sono corretti.

Cya

RicPol e Cya grazie per la risposta e scusate dei pochi dati inseriti

ho un Windows 7 64bit
python 3.4
Wing 101 v.6.1


codice script:
import os
path = os.chdir("C:/trash")
for n in os.listdir(path):
        file=open(n, "w")
        file.close()


codice errore:
3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit (AMD64)]
Python Type "help", "copyright", "credits" or "license" for more information.
[evaluate untitled-1.py]
Traceback (most recent call last):
File "C:/untitled-1.py", line 4, in <module>
file=open(n, "w")
builtins.PermissionError: [Errno 13] Permission denied: 'file2.txt'


--- Ultima modifica di pypy in data 2018-09-26 23:45:28 ---
Ma scusa... c:/trash è davvero il... cestino? Non ho windows 7 e non ricordo come è chiamato lì... Ma vuoi dire che stai cercando di scrivere in un file che sta dentro il cestino? Perché se è così allora sfido che non ci riesci.
https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide
Ma scusa... c:/trash è davvero il... cestino? Non ho windows 7 e non ricordo come è chiamato lì... Ma vuoi dire che stai cercando di scrivere in un file che sta dentro il cestino? Perché se è così allora sfido che non ci riesci.

no no è una cartella che ho creato io
comunque oltre al file nascosto
per gli altri file funziona

--- Ultima modifica di pypy in data 2018-09-26 23:50:12 ---
Allora magari è rimasto aperto da qualche altro processo e non te ne sei accorto. O magari è un problema oscuro di wingide, dovresti provare a fare questa operazione da una normale shell python aperta in un normale prompt dei comandi (cmd.exe) per vedere come funziona. O magari è che quel file in effetti ha anche degli altri attributi. O magari è un problema di windows 7... purtroppo stai usando un python obsoleto su un sistema operativo obsoleto... non è facile da testare... per dire, adesso dovrei farmi una macchina virtuale con win7 solo per questa roba... abbi pazienza ma proprio non ho tempo... Come ti hanno detto, su win10 (e win8, confermo) un file nascosto è normalmente apribile in scrittura. Comunque, SE non hai fatto altri errori e non ci sono magagne nascoste che non possiamo sapere, allora alla fine della giornata il problema è quello che ti dicevo: se il sistema operativo non ti consente l'apertura del file in scrittura, non è che python possa farci molto. Devi cambiare gli attributi del file.
https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide
Allora magari è rimasto aperto da qualche altro processo e non te ne sei accorto. O magari è un problema oscuro di wingide, dovresti provare a fare questa operazione da una normale shell python aperta in un normale prompt dei comandi (cmd.exe) per vedere come funziona. O magari è che quel file in effetti ha anche degli altri attributi. O magari è un problema di windows 7... purtroppo stai usando un python obsoleto su un sistema operativo obsoleto... non è facile da testare... per dire, adesso dovrei farmi una macchina virtuale con win7 solo per questa roba... abbi pazienza ma proprio non ho tempo... Come ti hanno detto, su win10 (e win8, confermo) un file nascosto è normalmente apribile in scrittura. Comunque, SE non hai fatto altri errori e non ci sono magagne nascoste che non possiamo sapere, allora alla fine della giornata il problema è quello che ti dicevo: se il sistema operativo non ti consente l'apertura del file in scrittura, non è che python possa farci molto. Devi cambiare gli attributi del file.

certamente che no :) non avevo pensato nemmeno lontanamente di far creare una macchina virtuale o fare prove complesse per una cosa simile

infatti la domanda ad inizio post avevo inserito poschi dati dando per scontato che ero io che sono all'inizio e quindi non conoscevo la sintassi giusta

poi alla fine anche a me mi era venuto il dubbio sia su wing ed ho fatto una prova con ide classico ma il problema continua ad esserci

sul fatto della versione di python non sono un esperto ma non saprei se potrebbe incidere, nel senso che il codice che ho postato è talmente basico che credo sia identico anche nelle versioni 2x forse l'unica cosa potrebbe essere win7 forse qualche impostazione particolare di blocco che nelle versioni successive la microsoft ha disabilitato oppure qualche blocco che posso disabilitare chissa.... mah non saprei proprio


comunque ribadisco credevo che si trattare di una sintassi diversa "aggiungere qualche parametro e cose simili" cercherò di ricavare una lista di tutti i file che creano un'eccezione per poi gestirli successivamente. grazie ancora RicPol e Cya della disponibilità siete stati gentilissimi



Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.