Dieser Artikel fasst Vorsichtsmaßnahmen und Abhilfemaßnahmen beim Umgang mit Zeichenfolgen zusammen, die einen "" Backslash enthalten, z. B. beim Festlegen eines Pfads in einer Windows-Umgebung. (Auf dem Mac ist der Pfadbegrenzer ein "/" Schrägstrich, sodass Sie sich beim Festlegen des Pfads keine Sorgen machen müssen.)
Wenn Sie beispielsweise den Ordnerpfad in der Windows-Umgebung wie unten gezeigt angeben, wird er möglicherweise anders behandelt als die erwartete Zeichenfolge.
python
dir_name = 'C:\testDir'
print(dir_name)
#Erwartete Zeichenfolge> C:\testDir
#Die tatsächlich angezeigte Zeichenfolge> C: estDir
Der Grund dafür ist, dass der Windows-Pfadbegrenzer ** "" Backslash ** in Python für einen Prozess namens "Escape-Sequenzen" verwendet wird.
Welche Art der Verarbeitung ist "Escape-Sequenz"? Zum Beispiel, wenn Sie eine Zeile in einer Zeichenfolge unterbrechen möchten
python
txt = 'Hier Pause → ← Pause'
# print(txt)Ich möchte Folgendes anzeigen
#Zeilenumbruch hier →
#← Zeilenumbruch
Selbst wenn Sie die Eingabetaste drücken, nur weil Sie einen Zeilenumbruch einfügen möchten, tritt ein Zeilenumbruch im Code auf und ein Fehler tritt auf.
python
txt = 'Zeilenumbruch hier →
← Zeilenumbruch'
# SyntaxError: EOL while scanning string literal
Daher ist die Methode zur Darstellung von ** Sonderzeichen wie "Zeilenvorschub" "Escape-Sequenz" **. Das Zeichen, das einen Zeilenumbruch bedeutet, wird durch '\ n' 'dargestellt, eine Kombination aus Backslashes' '' und '' n ''.
python
txt = 'Zeilenumbruch hier →\n ← Zeilenumbruch'
print(txt)
#↓ Angezeigte Zeichenfolge
#Zeilenumbruch hier →
#← Zeilenumbruch
Im Beispiel für das Festlegen des ersten Pfads wird der \ t
Teil von dir_name = 'C: \ testDir'
als das Zeichen" TAB
" behandelt.
Es wurde von Python als "C: [TAB] estDir" erkannt und war eine unnatürlich leere Zeichenkette.
Daher gibt es eine Möglichkeit, "" als Zeichenfolge "" Backslash zu behandeln, wie es für die Escape-Sequenz anstelle von "" ist.
Fügen Sie am Anfang der Zeichenfolge das Akronym "r" für "raw" hinzu, was "as is" bedeutet. Es wird als Rohzeichenfolge bezeichnet und so behandelt, wie es ist, ohne der Sequenz zu entkommen.
python
#Wenn r hinzugefügt wird, wird es so behandelt, wie es ist, und es wird nicht maskiert.
r'C:\testDir'
#Am Ende jedoch "\Kann nicht unterstützt werden, wenn es "" enthält
r'C:\testDir\'
# SyntaxError: EOL while scanning string literal
Da "" auch ein Sonderzeichen ist, kann es durch eine Escape-Sequenz als "dies ist ein Backslash" ausgedrückt werden.
Wenn Sie zwei Backslashes "\\
" schreiben, werden diese als Backslashes behandelt.
python
#Zwei Schrägstriche "\\Schreiben Sie, um dem Backslash selbst zu entkommen
'C:\\testDir'
Ich denke, diese Methode ist die beste für den Weg. Da das Trennzeichen des Pfads von Linux und Mac ein "/" Schrägstrich ist, können Sie Probleme vermeiden, wenn Sie die Umgebung ändern.
Denn Windows kann auch mit dem Trennzeichen "/" Schrägstrich unterstützen Schreiben Sie den Schrägstrich "" in den Schrägstrich "/" um, um damit umzugehen.
python
# 「\"Back Slash"/Zum Schrägstrich umschreiben
'C:/testDir'
Als Vorsichtsmaßnahme beim Umschreiben des Schrägstrichs in einen Schrägstrich Wenn Sie die Funktion zum Abrufen des Pfads verwenden, lautet das Trennzeichen des Pfads "" Backslash.
Folgendes wird unter 'C: \ testDir' ausgeführt.
python
import os
#Holen Sie sich das aktuelle Verzeichnis(Arbeitsordner)
current_dir = os.getcwd()
print(current_dir)
# C:\testDir 「\Holen Sie sich mit einem Backslash
Wenn Sie diesen erfassten Pfad verwenden und die nachfolgenden Pfade selbst festlegen, müssen Sie darauf achten, "/" und "" nicht zu mischen.
python
import os
#Holen Sie sich das aktuelle Verzeichnis
current_dir = os.getcwd()
#Ordner für Bilder festlegen "/Schreiben Sie den Fortsetzungspfad mit
image_dir = f'{current_dir}/image'
print(image_dir)
# C:\testDir/image 「\」「/"Gemischt
Die Python-Funktion funktioniert auch dann, wenn sie gemischt ist. Wenn Sie jedoch den Pfad an ein anderes System übergeben oder den Pfad als Zeichenfolge bearbeiten, tritt ein Fehler auf. Beispiel) Beim Festlegen des Download-Ordners von Chrome in Selenium
Ersetzen Sie daher als Problemumgehung "" durch "/", wenn Sie den Pfad abrufen, und rufen Sie ihn dann ab.
python
import os
#Wenn Sie das aktuelle Verzeichnis abrufen, setzen Sie das Trennzeichen auf "/Ersetzt mit
current_dir = os.getcwd().replace(os.sep,'/')
print(current_dir)
# C:/testDir
Danke für Ihren Besuch. Es gibt verschiedene Möglichkeiten, mit dem "" Backslash umzugehen, aber lassen Sie uns Regeln vor Ort oder selbst festlegen und vereinheitlichen, damit wir uns problemlos entwickeln können.
Escape-Sequenz verwenden Roher String, der Escape-Sequenzen in Python ignoriert (deaktiviert) Get Separator
Recommended Posts