Je ne sais pas pourquoi, mais pour une raison quelconque, chaque fois que j'ai "région" dans le nom du fichier de sortie, cela me donne l'erreur suivante:
IOError: [Errno 22] mode non valide ('w') ou nom de fichier: 'chemin\régionlog.txt'
Il le fait pour "region.txt" , "logregion.txt" , etc.
class writeTo:
def __init__(self, stdout, name):
self.stdout = stdout
self.log = file(name, 'w') #here is where it says the error occurs
output = os.path.abspath('path\regionlog.txt')
writer = writeTo(sys.stdout, output) #and here too
Pourquoi est-ce? Je voudrais vraiment nommer mon fichier "regionlog.txt" mais il continue à arriver avec cette erreur. Y a-t-il un moyen de le contourner?
Utilisez des barres obliques:
'path/regionlog.txt'
Ou des cordes brutes:
r'path\regionlog.txt'
Ou du moins échapper à vos barres obliques inverses:
'path\\regionlog.txt'
\r
est un retour chariot.
Une autre option: utilisez os.path.join
et vous n'aurez plus à vous soucier des barres obliques:
output = os.path.abspath(os.path.join('path', 'regionlog.txt'))
En langage standard C, \t
, \n
, \r
sont des caractères d'échappement. \t
est un transversal à la prochaine position de tabulation. \n
est une nouvelle ligne et \r
est un retour à la ligne. Vous devriez utiliser \\r
ou /r
et vous résoudrez le problème!
De plus, Python affiche également ce message lorsque vous essayez d'ouvrir un fichier> 50 Mo à partir d'un lecteur partagé SharePoint.
Une autre solution simple consiste à remplacer les instances "\ r" dans le chemin du fichier par "\ R"