Ich weiß nicht warum, aber aus irgendeinem Grund gibt es immer einen Fehler, wenn ich "Region" im Dateinamen der Ausgabedatei habe:
IOError: [Errno 22] ungültiger Modus ('w') oder Dateiname: 'Pfad\regionlog.txt'
Dies geschieht für "region.txt" , "logregion.txt" usw.
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
Warum ist das? Ich möchte meine Datei wirklich "regionlog.txt" nennen, aber diese Fehlermeldung wird immer wieder angezeigt. Gibt es einen Weg dahin?
Schrägstriche verwenden:
'path/regionlog.txt'
Oder rohe Saiten:
r'path\regionlog.txt'
Oder entkomme wenigstens deinen Backslashes:
'path\\regionlog.txt'
\r
ist ein Wagenrücklauf.
Eine weitere Option: Verwenden Sie os.path.join
und Sie müssen sich keine Gedanken um Schrägstriche machen:
output = os.path.abspath(os.path.join('path', 'regionlog.txt'))
In der C-Standardsprache sind \t
, \n
, \r
Escapezeichen. \t
ist quer zur nächsten TAB-Position. \n
ist ein Zeilenvorschub und \r
ist ein Wagenrücklauf. Sie sollten \\r
oder /r
verwenden, und Sie werden das Problem lösen!
Darüber hinaus gibt Python diese Meldung auch aus, wenn versucht wird, eine Datei> 50 MB von einem gemeinsam genutzten SharePoint-Laufwerk aus zu öffnen.
Eine andere einfache Lösung ist das Ändern der "\ r" -Instanzen im Dateinamenpfad in "\ R"