>>> fout=open("oops.txt","wt")
>>> print("Oops,I created a file.",file=fout)
>>> fout.close()
>>> import os
>>> os.path.exists("oops.txt")
True
>>> os.path.exists("./oops.txt")
True
>>> os.path.exists("aaa.txt")
False
>>> os.path.exists(".")
True
>>> os.path.exists("..")
True
>>> name="oops.txt"
>>> os.path.isfile(name)
True
#Ob es sich um ein Verzeichnis handelt isdir()verwenden.
#"."Repräsentiert das aktuelle Verzeichnis
#".."Repräsentiert das übergeordnete Verzeichnis
>>> os.path.isdir(name)
False
>>> os.path.isdir(".")
True
>>> os.path.isdir("..")
True
#isabs()Gibt zurück, ob das Argument ein absoluter Pfad ist.
>>> os.path.isabs(name)
False
>>> os.path.isabs("/big/fake/name")
True
>>> os.path.isabs("/big/fake/name/without/a/leading/slash")
True
>>> os.path.isabs("big/fake/name/without/a/leading/slash")
False
>>> import shutil
>>> shutil.copy("oops.txt","ohono.txt")
'ohono.txt'
>>> import os
>>> os.rename("ohono.txt","ohwel.txt")
#yikes.oops von txt.Erstellen Sie einen festen Link zu txt
>>> os.link("oops.txt","yikes.txt")
>>> os.path.isfile("yikes.txt")
True
jeepers.oops von txt.Erstellen Sie einen symbolischen Link zu txt
>>> os.symlink("oops.txt","jeepers.txt")
>>> os.path.islink("jeepers.txt")
True
#oops.In txt ist nur Lesen erlaubt.
>>> os.chmod("oops.txt",0o400)
>>> import stat
>>> os.chmod("oops.txt",stat.S_IRUSR)
>>> uid=5
>>> gid=22
>>> os.chown("oops",uid,gid)
#Erweitern Sie relative Namen zu absoluten Namen.
>>> os.path.abspath("oops.txt")
'/Users/practice/bin/oops.txt'
#Ruft den aktuellen Status der Linkdatei ab.
>>> os.path.realpath("jeepers.txt")
'/Users/practice/bin/oops.txt'
>>> os.remove("oops.txt")
>>> os.path.exists("oops.txt")
False
--Dateien befinden sich in einer hierarchischen Struktur von Verzeichnissen. Der Container für diese Dateien und das gesamte Verzeichnis wird als Dateisystem bezeichnet.
>>> os.mkdir("poems")
>>> os.path.exists("poems")
True
>>> os.rmdir("poems")
>>> os.path.exists("poems")
False
>>> os.mkdir("poems")
>>> os.listdir("poems")
[]
#Unterverzeichnis erstellen
>>> os.mkdir("poems/mcintyre")
>>> os.listdir("poems")
['mcintyre']
>>> fout=open("poems/mcintyre/the_good_man","wt")
>>> fout.write("""Cheerful and happy was his mood,
... He to the poor was kind and good,
... And he oft times did find them food,
... Also suppleis of coal and wood,
... """)
137
>>> fout.close()
>>> os.listdir("poems/mcintyre")
['the_good_man']
>>> import os
>>> os.chdir("poems")
>>> os.listdir(".")
['mcintyre']
>>> import glob
>>> glob.glob("m*")
['mcintyre']
>>> glob.glob("??")
[]
>>> glob.glob("m??????e")
['mcintyre']
>>> glob.glob("[klm]*e")
['mcintyre']
Wenn Sie ein separates Programm ausführen, erstellt das Betriebssystem einen ** Prozess **.
Der Prozess ist unabhängig und kann nicht gesehen oder gestört werden.
Das Betriebssystem verwaltet alle laufenden Prozesse.
Auf Prozessdaten kann auch über das Programm selbst zugegriffen werden → Verwenden Sie das OS-Modul der Standardbibliothek.
>>> import os
#Holen Sie sich die Prozess-ID.
>>> os.getpid()
40037
#Holen Sie sich das aktuelle Verzeichnis.
>>> os.getcwd()
'/Users/practice/bin/poems'
#Benutzer-ID abrufen.
>>> os.getuid()
501
#Gruppen-ID abrufen.
>>> os.getgid()
20
>>> import subprocess
>>> ret=subprocess.getoutput("date")
>>> ret
'Dienstag, 28. Januar 2020 11:17:59 JST'
>>> ret=subprocess.getoutput("date -u")
>>> ret
'Dienstag, 28. Januar 2020 02:19:40 UTC'
>>> ret=subprocess.getoutput("date -u | wc")
>>> ret
' 1 5 48'
#Akzeptiert eine Liste von Befehlen und Argumenten.
>>> ret=subprocess.check_output(["date","-u"])
>>> ret
b'2020\xe5\xb9\xb4 1\xe6\x9c\x8828\xe6\x97\xa5 \xe7\x81\xab\xe6\x9b\x9c\xe6\x97\xa5 02\xe6\x99\x8222\xe5\x88\x8605\xe7\xa7\x92 UTC\n'
#Ein Statuscode und ein Ausgabe-Taple werden zurückgegeben.
>>> ret=subprocess.getstatusoutput("date")
>>> ret
(0, 'Dienstag, 28. Januar 2020, 11:26:35 Uhr JST')
#Rufen Sie an, um nur den Endstatus zu erhalten()verwenden.
>>> ret=subprocess.call("date")
Dienstag, 28. Januar 2020 11:27:05 JST
>>> ret
0
>>> ret=subprocess.call("date -u",shell=True)
Dienstag, 28. Januar 2020 02:30:49 UTC
>>> ret=subprocess.call(["date", "-u"])
Dienstag, 28. Januar 2020 02:34:41 UTC
mp.py
import multiprocessing
import os
def do_this(what):
whoami(what)
def whoami(what):
print("Process %s says: %s" % (os.getpid(), what))
#Process()Die Funktion startet einen neuen Prozess und führt den vom Ziel angegebenen Prozess aus, indem sie das durch args angegebene Argument zuweist.
#Wenn Sie ein Argument mit args erstellen und am Ende kein Komma setzen, wird es als Zeichenfolge erkannt und das Ergebnis ist seltsam.
if __name__ == "__main__":
whoami("I'm the main program")
for n in range(4):
p = multiprocessing.Process(target=do_this, args=("I'm function %s" % n,))
p.start()
Ausführungsergebnis
python mp.py
Process 40422 says: I'm the main program
Process 40438 says: I'm function 0
Process 40439 says: I'm function 1
Process 40440 says: I'm function 2
Process 40441 says: I'm function 3
termina.py
import multiprocessing
import time
import os
def whoami(name):
print("I'm %s, in process %s" % (name, os.getpid()))
def loopy(name):
whoami(name)
start = 1
stop = 1000000
for num in range(start, stop):
print("\tNumber %s of %s. Honk!" % (num, stop))
time.sleep(1)
if __name__ == '__main__':
whoami("main")
p = multiprocessing.Process(target=loopy, args=("loopy" ,))
p.start()
time.sleep(5)
p.terminate()
Ausführungsergebnis
python termina.py
I'm main, in process 40518
I'm loopy, in process 40534
Number 1 of 1000000. Honk!
Number 2 of 1000000. Honk!
Number 3 of 1000000. Honk!
Number 4 of 1000000. Honk!
Number 5 of 1000000. Honk!
#Testen Sie, ob es ein feuchtes Jahr ist.
>>> import calendar
>>> calendar.isleap(1900)
False
>>> calendar.isleap(1996)
True
>>> calendar.isleap(1999)
False
>>> calendar.isleap(2000)
True
>>> calendar.isleap(2002)
False
>>> calendar.isleap(2004)
True
>>> from datetime import date
>>> halloween=date(2014,10,31)
>>> halloween
datetime.date(2014, 10, 31)
#Es kann als Attribut abgerufen werden.
>>> halloween.day
31
>>> halloween.month
10
>>> halloween.year
2014
#Der Inhalt des Datums ist isformat()Kann mit angezeigt werden.
>>> halloween.isoformat()
'2014-10-31'
#today()Generieren Sie das heutige Datum mit der Methode.
>>> from datetime import date
>>> now=date.today()
>>> now
datetime.date(2020, 1, 28)
>>> from datetime import timedelta
>>> one_day=timedelta(days=1)
>>> tomorrow=now + one_day
>>> tomorrow
datetime.date(2020, 1, 29)
>>> now + 17*one_day
datetime.date(2020, 2, 14)
>>> yesterday=now-one_day
>>> yesterday
datetime.date(2020, 1, 27)
#Verwenden Sie das Zeitobjekt des Datums- / Uhrzeitmoduls, um die Uhrzeit darzustellen.
>>> from datetime import time
>>> noon=time(12,0,0)
>>> noon
datetime.time(12, 0)
>>> noon.hour
12
>>> noon.minute
0
>>> noon.second
0
>>> noon.microsecond
0
#Das datetime-Objekt ist ebenfalls isoformat()Habe eine Methode.
>>> from datetime import datetime
>>> some_day=datetime(2014,1,2,3,4,5,6)
>>> some_day
datetime.datetime(2014, 1, 2, 3, 4, 5, 6)
>>> some_day.isoformat()
'2014-01-02T03:04:05.000006'
#datetime erhält jetzt das aktuelle Datum und die aktuelle Uhrzeit()Habe eine Methode.
>>> from datetime import datetime
>>> x=datetime.now()
>>> x
datetime.datetime(2020, 1, 28, 13, 59, 8, 731311)
>>> x.year
2020
>>> x.day
28
>>> x.hour
13
>>> x.minute
59
>>> x.second
8
>>> x.microsecond
731311
#Sie können Datums- und Zeitobjekte mit Kombinieren kombinieren.
>>> from datetime import datetime,time,date
>>> noon=time(12)
>>> this_day=date.today()
>>> noon_today=datetime.combine(this_day,noon)
>>> noon_today
datetime.datetime(2020, 1, 28, 12, 0)
>>> noon_today.date()
datetime.date(2020, 1, 28)
>>> noon_today.time()
datetime.time(12, 0)
Zusätzlich zum Zeitobjekt des datetime-Moduls gibt es ein Zeitmodul. → Die Funktion time () des Zeitmoduls gibt die Unix-Zeit zurück.
Die Unix-Zeit verwendet die Anzahl der Sekunden seit Mitternacht am 1. Januar 1970.
>>> import time
>>> now=time.time()
>>> now
1580188038.071847
#ctime()Sie können Unix-Zeit in eine Zeichenfolge konvertieren.
>>> time.ctime(now)
'Tue Jan 28 14:07:18 2020'
#localtime()Gibt Datum und Uhrzeit in der Standardzeit des Systems zurück.
>>> time.localtime(now)
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=28, tm_hour=14, tm_min=7, tm_sec=18, tm_wday=1, tm_yday=28, tm_isdst=0)
#gmttime()Gibt die Zeit in UTC zurück.
>>> time.gmtime(now)
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=28, tm_hour=5, tm_min=7, tm_sec=18, tm_wday=1, tm_yday=28, tm_isdst=0)
#mktime()Ist eine Struktur_Zeit Konvertiert ein Objekt in Unix-Zeit.
>>> tm=time.localtime(now)
>>> time.mktime(tm)
1580188038.0
--Die Ausgabe von Datum und Uhrzeit ist kein proprietäres Patent von isoformat (). --strftime () wird in Abhängigkeit von Zeitmodul, Datum / Uhrzeit, Datum und Uhrzeitobjekt bereitgestellt und kann in eine Zeichenfolge konvertiert werden. --Verwenden Sie strptime (), um eine Zeichenfolge in Datums- und Zeitinformationen zu konvertieren.
#ctime()Konvertiert die Unix-Zeit in eine Zeichenfolge.
>>> import time
>>> now=time.time()
>>> time.ctime(now)
'Tue Jan 28 14:15:57 2020'
>>> import time
#strftime()Verwenden Sie den Formatbezeichner von.
>>> fmt="""It is %A,%B,%d,%Y, local time %I:%M:%S%p"""
>>> t=time.localtime()
>>> t
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=28, tm_hour=14, tm_min=21, tm_sec=10, tm_wday=1, tm_yday=28, tm_isdst=0)
#struct_Konvertieren Sie die Zeit in eine Zeichenfolge.
>>> time.strftime(fmt,t)
'It is Tuesday,January,28,2020, local time 02:21:10PM'
>>> from datetime import date
>>> some_day=date(2014,7,4)
#Bei Verwendung in einem Datumsobjekt wird nur das Datum formatiert.
>>> some_day.strftime(fmt)
'It is Friday,July,04,2014, local time 12:00:00AM'
>>> from datetime import time
>>> some_time=time(10,45)
#Bei Verwendung im Zeitobjekt wird nur die Zeit formatiert.
>>> some_time.strftime(fmt)
'It is Monday,January,01,1900, local time 10:45:00AM'
#Umgekehrt strptime, um eine Zeichenfolge in Datums- und Zeitinformationen umzuwandeln()verwenden.
#Die anderen Teile als das untergeordnete Format müssen genau übereinstimmen.
>>> import time
>>> fmt="%Y-%m-%d"
>>> time.strptime("2012-01-29",fmt)
time.struct_time(tm_year=2012, tm_mon=1, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=29, tm_isdst=-1)
#setlocale()Gibt das Datum im angegebenen Gebietsschema zurück.
>>> import locale
>>> from datetime import date
>>> halloween=date(2014,10,31)
>>> for lang_country in ["en_us","fr_fr","de_de","es_es","is_is",]:
... locale.setlocale(locale.LC_TIME,lang_country)
... halloween.strftime("%A, %B, %d")
...
'en_us'
'Friday, October, 31'
'fr_fr'
'Vendredi, octobre, 31'
'de_de'
'Freitag, Oktober, 31'
'es_es'
'viernes, octubre, 31'
'is_is'
'föstudagur, október, 31'
>>> import locale
>>> names=locale.locale_alias.keys()
>>> good_names=[name for name in names if
... len(name)==5 and name[2]=="_"
...
...
... ]
>>> good_names[5]
'ak_gh'
>>> good_names=[name for name in names if
... len(name)==5 and name[2]=="_"]
>>> good_names[5]
'ak_gh'
>>> good_names[:5]
['a3_az', 'aa_dj', 'aa_er', 'aa_et', 'af_za']
>>> de=[name for name in good_names if name.startswith("de")]
>>> de
['de_at', 'de_be', 'de_ch', 'de_de', 'de_it', 'de_lu']
>>> from datetime import date
>>> with open("today.txt","wt") as fout:
... now=date.today()
... now_str=now.isoformat()
... print(now_str,file=fout)
>>> with open("today.txt","rt") as input:
... today_string=input.read()
...
>>> today_string
'2020-01-28\n'
>>> import time
>>> fmt="%Y-%m-%d\n"
#Zeichenkette ⇨ Strptime für Datumsinformationen()verwenden.
>>> time.strptime(today_string,fmt)
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=28, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=28, tm_isdst=-1)
>> import os
>>> os.listdir(".")
[`flask2.py`, `pip3.7`, `jeepers.txt`, `villains`, `activate.ps1`, `index.html`, `.DS_Store`, `python3`, `settings.cfg`, `relativity`, `yikes.txt`, `easy_install`, `python`, `pip3`, `ohwel.txt`, `today.txt`, `activate.fish`, `easy_install-3.7`, `bottle3.py`, `zoo.py`, `flask9-2.py`, `test1.py`, `weather.py`, `bottle2.py`, `wheel`, `enterprise.db`, `flask9-3.py`, `links.py`, `__pycache__`, `flask3a.py`, `python3.7`, `test2.py`, `bottle1.py`, `python-config`, `activate_this.py`, `pip`, `bottle_test.py`, `definitions.db`, `flask3b.py`, `menu.xml`, `books.csv`, `mp.py`, `activate.xsh`, `weatherman.py`, `lelatibity`, `termina.py`, `bfile`, `flask3c.py`, `relatibity`, `flask9-5.py`, `sources`, `text.txt`, `templates`, `activate`, `poems`, `books.db`, `flask1.py`, `mcintyre.yaml`, `report.py`, `zoo.db`, `activate.csh`]
>>> import os
>>> os.listdir("..")
['.DS_Store', '61.py', 'bin', 'python', 'include', 'lib']
multi_times.py
import multiprocessing
import os
def now(seconds):
from datetime import datetime
from time import sleep
sleep(seconds)
print("wait", seconds, "second, time is ", datetime.utcnow())
if __name__== "__main__":
import random
for n in range(3):
seconds=random.random()
proc=multiprocessing.Process(target=now, args=(seconds,))
proc.start()
Ausführungsergebnis
python3 multi_times.py
wait 0.31146317121366796 second, time is 2020-01-28 06:30:39.446188
wait 0.5162984978514253 second, time is 2020-01-28 06:30:39.650398
wait 0.8005158157521853 second, time is 2020-01-28 06:30:39.934936
>>> from datetime import date
>>> birthday=date(1994, 1, 1)
>>> birthday
datetime.date(1994, 1, 1)
>>> import time
>>> from datetime import date
>>> birthday=date(1994, 1, 1)
>>> fmt="%Y-%m-%d-%A"
>>> date.strftime(birthday,fmt)
'1994-01-01-Saturday'
>>> from datetime import timedelta
>>> day=timedelta(days=10000)
>>> A=birthday+day
>>> A
datetime.date(2021, 5, 19)
Ich habe es schnell überprüft. Ich möchte Tutorials sehen, wenn ich es benutze.
"Einführung in Python3 von Bill Lubanovic (veröffentlicht von O'Reilly Japan)"
Recommended Posts