ich Verzeichnisse haben, die enthält '\ x ..' Zeichen wie '\ x00':Ersetzen ' x ..' Litteral Zeichenfolge in Python
#ls
c\x00mb
und ich möchte, dass sie ohne diese umzubenennen, da Wenn ich diese Dateien in Windows kopiere, werden sie unbrauchbar. Also mein Python-Skript durch diese Verzeichnisse wird und die problematischen Zeichen die folgende Art und Weise Nachweis:
if '\\x' in dir: # dir is the name of the current directory
Zuerst dachte ich, ich dieses Problem loswerden könnte das re
Modul in Python unter Verwendung:
new_dir_name = re.sub('\x00', r'', dir) # I am using \x00 as an example
Aber das hat nicht funktioniert. Gibt es eine Möglichkeit, diese Zeichen durch Python zu ersetzen?
EDIT: um zu verstehen, die char, wenn ich ls
zu xxd
xxd
Rohr die '\' Zeichen erscheint in der Ascii-Darstellung. In hexadezimal zeigt es 5c '
Ich würde beginnen, indem Sie eine 'os.listdir()' in Python und überprüfen, wie Python die Zeichenfolgendarstellung dieser Verzeichnisnamen aussieht. – turbulencetoo
könnte so einfach sein wie 'new_dir_name = dir.replace ('\ 0', '')' – turbulencetoo
os.listdir (dir_path) gibt 'c \\ x00mb'. Lassen Sie mich versuchen, die dir.replace – aze