Ich möchte die Datei an einen neuen Ort in Windows7 64bit kopieren. Aber ich finde einige Sonderzeichen im Dateinamen kann Fehler 22 verursachen, wenn Sie shuthil.copy2 verwenden (aber diese Datei ist legal in Windows GUI und kann mit der Maus kopiert werden). Ich glaube, der Fehler22 bedeutet, dass die Quelldatei nicht gefunden werden kann, indem dieser Dateiname zitiert wird. Meine Problemumgehung würde also sein, die Sonderzeichen in irgendeinem Dateinamen zu entfernen oder zu ersetzen, der dieses Problem in windows7 64bit verursacht. Im Allgemeinen kopiert der Benutzer Dateien aus anderen Ordnern in diesen Ordner, sodass der Dateiname von einigen Variablen und nicht von Konstanten gehandhabt werden muss. Aber als Beispiel gebe ich einfach zwei Dateinamen in den Beispielcode ein. Ich habe den Code im Bild gezeigt:Python ersetzen Sonderzeichen
# -*- coding: gbk*-
#!/usr/bin/python
#Filename:ae.py
import os,shutil,time,re,string,sys #re is regular expression
from nt import chdir
import win32api,win32file
import unicodedata,codecs
scr=r"C:\Users\Administrator\Desktop\« How-To Geek Forums.pdf"
des="C:\\Users\\Administrator\\Desktop\\How-To Geek Forums.pdf"
#chdir(os.path.dirname(scr))
os.rename(scr,des)
und ich bekam
WindowsError:[Error 123]
Ich denke, das bedeutet, dass ich es nicht einmal umbenennen einmal Python-Skript gibt es einige Sonderzeichen wie «sind
dank kmario23, ich Mühe hatte, Bearbeiten, um den Fomat zu verbessern –
Diese Frage bezieht sich auf die Problemumgehung der ursprünglichen Frage in einer anderen Frage [link] (http://stackoverflow.com/questions/42 804167/copy-files-with-seltsame-name-in-python-hat-error-22). Also, wenn das gelöst werden kann, existiert diese Frage nicht für diesen Zweck –
Mögliche Duplikate von [Entfernen Sie alle Sonderzeichen, Interpunktion und Leerzeichen aus Zeichenfolge] (http://stackoverflow.com/questions/5843518/remove-all-special- Zeichen-Interpunktion-und-Leerzeichen-von-Zeichenfolge) – wwii