Es war ein Problem, dass mein Home-Skript auf Python2.7 ausgeführt wurde, daher habe ich versucht, Python3 zu verwenden. Die diesjährige Arbeit war sicher und ich habe sie erledigt, also möchte ich über das Jahr hinweg programmieren.
Voraussetzungen:
Da es "in meinem Fall" bis zum letzten ist, ändert es sich von Fall zu Fall, abhängig vom Schreibstil und den verwendeten Funktionen, und es ist keine Geschichte, dass ich es als Python3 zu einem guten Schreibstil gemacht habe, auf der Ebene, auf der es ohne Probleme funktioniert hat.
Jede Funktion | Mit oder ohne Codeänderung | Bemerkungen |
---|---|---|
Datei zeilenweise lesen | Veränderung | a_file.xreadlines→a_file.Zeilen lesen(Siehe unten) |
Dateisystemreferenz(ls -R-ähnlich) | Wie es ist | os.Pfad und OS.Verwenden Sie listdir |
Japanische Zeichenkettenoperation | Veränderung | Die Codierungsspezifikation wird gelöscht(Siehe unten) |
Erhalten Sie japanische Argumente | Veränderung | Die Codierungsspezifikation wird gelöscht(Siehe unten) |
String-Ausgabe | Veränderung | Berühmter Typ(Siehe unten) |
String-Ersatz | Veränderung | Die Codierungsspezifikation wird gelöscht(Siehe unten) |
String-Formatierung | Wie es ist | +Verwendung der Verkettung von Zeichenfolgen |
Textdateiausgabe | Wie es ist | codec.offene Verwendung |
bottle(Webserver) | Wie es ist | Setzen Sie die Flasche wieder ein |
Holen Sie sich die Bildgröße mit PIL | Wie es ist | Ich habe das Kissen wieder hineingelegt, aber es ist etwas mühsam(Siehe unten) |
Holen Sie sich Median mit Numpy | Wie es ist | Ich habe numpy wieder eingefügt, aber es ist ein wenig mühsam(Siehe unten) |
Schlaf zur Zeit | Wie es ist | |
Ionice mit Psutil | Wie es ist | Psutil wieder einsetzen |
Aktuelle Zeit abrufen | Wie es ist | |
Führen Sie den Systembefehl mit os aus | Wie es ist | Wenn Sie die Codierung jedoch durch Senden und Empfangen von Argumenten ändern, müssen Sie sie nicht angeben |
Dialoganzeige(GUI) | Veränderung | Verwenden Sie MessageBoxA von win32api von ctypes(Siehe unten) |
Die, die du oft siehst.
# before
print "hoge"
#after
print("hoge")
Ich brauche keine mysteriösen Zauber mehr.
# before
import sys
reload(sys)
sys.setdefaultencoding("cp932")
unicode(hoge_string, encoding='cp932')
#after
#Ich brauche keine Zauber mehr!Wenn Sie es jedoch schreiben, ändert sich die Art und Weise, wie die ersten beiden Zeilen geschrieben werden
import importlib
importlib.reload(sys)
sys.setdefaultencoding('cp932')
#Sie müssen nicht einmal jede Zeichenfolgenvariable angeben
hoge_string
Verwenden Sie MessageBoxW anstelle von MessageBoxA. Referenz: MessageBox (Windows-API) von Python 3 aus aufrufen
# before
def win_alert(mes):
user32 = windll.user32
user32.MessageBoxA(
0,
mes,
"info",
0x00000040)
#after
def win_alert(mes):
user32 = windll.user32
user32.MessageBoxW(
0,
mes,
"info",
0x00000040)
xreadlines Ich konnte die offizielle Dokumentation nicht finden, aber xreadlines scheint in Python3 veraltet zu sein. Da es jedoch Readlines gibt, habe ich x genommen.
# before
for line in itr.xreadlines():
#after
for line in itr.readlines():
Referenz: [Portieren von Code nach Python 3 mit 2to3 - Tauchen Sie in die japanische Version von Python 3 ein](http://diveintopython3-ja.rdy.jp/porting-code-to-python-3-with-2to3. html)
Wenn ich "Pip Install Pillow" an den Fenstern mache, wird der Build zum Zeitpunkt der Installation ausgeführt und ich werde wütend auf zlib. Wie auch immer, ich habe eine vorgefertigte Binärdatei bekommen und sie installiert.
#Öffnen Sie Folgendes in Ihrem Browser"Pillow‑3.4.2‑cp36‑cp36m‑win_amd64.whl"DL
# http://www.lfd.uci.edu/~gohlke/pythonlibs/
$ pip install Pillow‑3.4.2‑cp36‑cp36m‑win_amd64.whl
Referenz: [Pillow für Python 3.x kann unter Windows nicht installiert werden - Zlib ist erforderlich - Stapelüberlauf](http://stackoverflow.com/questions/38733647/cant-install-pillow-for-python-3-x- in-windows-zlib-ist-erforderlich) Referenz: Python - Zlib-Fehler bei der Installation von Pillow - Stack Overflow Referenz: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow
Entsprechend dem Fehler zum Zeitpunkt der Installation habe ich "Visual C ++ Build Tools" installiert und dann erneut ausgeführt.
Selbst bei Verwendung von python2 wurde der Flaschenwebserver automatisch gestartet, ohne dass die Konsole angezeigt wurde. Aber irgendwie startet pythonw.exe das Flaschenskript nicht ... Wenn Sie es mit python.exe starten, wird es natürlich auf der Konsole angezeigt ... (Ich habe vergessen, eine Sicherungskopie der Einstellungen des Taskplaners zu erstellen und wie diese realisiert wurde ...)
Wenn Sie dann nach einer Schnellsuche im Taskplaner "Ausführen, unabhängig davon, ob der Benutzer angemeldet ist" auswählen, wird diese nicht angezeigt. Ich konnte es schaffen, aber warum nicht?
#Einstellungen im Taskplaner
[Allgemeines]→[Sicherheitsoptionen]
"Unabhängig davon ausführen, ob der Benutzer angemeldet ist"
[Operation]→[Programm/Skript]
"C:\hoge\Python36\python.exe"
[Operation]→[Argument hinzufügen]
C:/hoge/bottle_sample.py
Hinweis: [Die vom Taskplaner in Windows 7 ausgeführte Batchdatei wird nicht auf dem Bildschirm angezeigt. --Microsoft Community](https://answers.microsoft.com/en-us/windows/forum/windows_7-winapps/windows7%E3%81%A7%E3%82%BF%E3%82%B9%E3%82 % AF / ccff2c2f-5a0e-4f3d-ae81-9dff3e36fc3c)
Vielleicht, weil das Ziel kleine und einfache Funktionen waren, konnte ich es in ein oder zwei Stunden während der Untersuchung erledigen, so dass es relativ leicht zu bewegen war. Ich bin mir jedoch nicht bewusst, wie ich es als Python3 richtig schreiben soll, also muss ich es richtig studieren ...
Insbesondere für diejenigen, die unter Windows Schwierigkeiten mit Japanisch haben, ist ein Upgrade auf Python3 unerlässlich. (Sie müssen weder cp932 noch mysteriösen Zeichencode mehr verwenden oder sich um die Konsistenzübereinstimmung zwischen Codierung, Decodierung und Unicode () sorgen.)
Die meisten Bibliotheken sind bereits kompatibel. (Wenn es dadurch n-mal schneller wird als Ruby oder PHP, wird es Kauderwelsch sein)
das ist alles.
Recommended Posts