1. Pythoni abil arvuti sulgemise põhimõtted
Pythoni abil arvuti sulgemise kõige lihtsam viis on kasutada os
-moodulit. See meetod on lihtne, kuid samas väga võimas ning seda mõistavad hõlpsasti ka algajad, mistõttu kasutavad seda paljud Pythoni arendajad. Allpool selgitame üksikasjalikult seda põhimeetodit.
1.1 Miks sulgeda arvuti Pythoniga?
Kuna Python töötab erinevatel platvormidel, saab sama koodi kasutada Windowsi, Linuxi ja macOS-i arvutite sulgemiseks. Lisaks saab Pythoni skripti abil näiteks lasta arvuti automaatselt sulgeda pärast kindla ülesande lõpetamist, mis muudab töövoo haldamise tõhusamaks.
1.2 Lihtne sulgemine os-mooduliga
Kõige lihtsam viis arvuti sulgemiseks Pythoni kaudu on os.system
funktsiooni kasutamine süsteemikäskude täitmiseks. Allpool on toodud näide Windowsi ja macOS/Linuxi jaoks.
import os
# Windowsi sulgemine
os.system('shutdown /s /t 1')
# macOS/Linuxi sulgemine
os.system('shutdown -h now')
1.2.1 Windowsi puhul
Windowsis saab arvuti sulgeda käsuga shutdown /s /t 1
. /s
tähendab sulgemist ja /t
määrab ooteaja sekundites. Antud juhul sulgub arvuti 1 sekundi pärast.
1.2.2 macOS/Linuxi puhul
macOS-is ja Linuxis kasutatakse käsku shutdown -h now
. Valik -h
tähendab „halt“ ehk peatamist, mis lõpetab süsteemi töö kohe.
1.3 Platvormipõhised käsud
Igal operatsioonisüsteemil on erinevad sulgemiskäsud, kuid Pythoni skripti abil saab OS-i tuvastada ja täita sobiva käsu automaatselt. Näiteks saab kasutada platform
-moodulit järgmiselt:
import os
import platform
if platform.system() == "Windows":
os.system('shutdown /s /t 1')
elif platform.system() == "Linux" or platform.system() == "Darwin":
os.system('shutdown -h now')
See skript tuvastab jooksva operatsioonisüsteemi ja täidab sellele vastava sulgemiskäsu, võimaldades sama koodi kasutada mitmel platvormil.
1.4 Kokkuvõte
os
-mooduliga sulgemise meetod on väga lihtne, kuid samas paindlik. Eriti kasulik on see mitme operatsioonisüsteemi toetamisel. Selle baasskripti peale saab lisada täiendavaid funktsioone, et automatiseerida arvuti sulgemisprotsessi ja parandada süsteemihaldust.

2. Ajastatud sulgemise meetod
Järgmiseks vaatleme, kuidas arvuti automaatselt kindla aja möödudes sulgeda. See on kasulik näiteks siis, kui soovite arvuti sulgeda pärast pikka ülesannet või kindla ooteaja järel. Pythoni time
-mooduli abil saab seda lihtsalt rakendada.
2.1 Mis on ajastamisfunktsioon?
Ajastamisfunktsioon tähendab kindla aja möödudes etteantud tegevuse sooritamist. Pythoni puhul saab kasutada time.sleep()
funktsiooni, mis peatab skripti määratud ajaks ning seejärel käivitab tegevuse (antud juhul arvuti sulgemise).
2.2 Põhiline ajastatud sulgemine
Allpool on näide Pythoni skriptist, mis sulgeb arvuti määratud minutite pärast.
import time
import os
def shutdown_timer(minutes):
seconds = minutes * 60
print(f"{minutes} minuti pärast sulgeb arvuti.")
time.sleep(seconds)
os.system("shutdown /s /t 1")
# Sulgeb arvuti 5 minuti pärast
shutdown_timer(5)
2.2.1 Koodi selgitus
shutdown_timer()
funktsioon: Võtab sisendiks minutid, teisendab need sekunditeks ja kasutabtime.sleep()
, et oodata enne sulgemise käivitamist.- Argumendi määramine: Funktsioonile antakse ooteaeg minutites. Näites on määratud 5 minutit, kuid seda saab kohandada vastavalt vajadusele.
2.3 Ajastatud sulgemise rakendused
Ajastamisfunktsiooni saab kasutada mitmel moel.
2.3.1 Pikkade ülesannete järel
Näiteks suurte failide allalaadimise või video kodeerimise järel saab arvuti automaatselt sulgeda. Nii ei pea pidevalt kontrollima, kas töö on lõppenud.
2.3.2 Planeeritud sulgemine
Kui on vaja arvuti teatud ajal sulgeda (nt öösel), on ajastamisfunktsioon ideaalne lahendus. Samuti sobib see olukordadesse, kus arvuti jäetakse pikaks ajaks järelevalveta.
2.3.3 Kohandatud ajastus
Lisaks time.sleep()
-i kasutamisele saab skripti muuta interaktiivseks, nii et kasutaja sisestab ise ooteaja.
import time
import os
minutes = int(input("Sisesta sulgemiseni jäänud aeg (minutites): "))
seconds = minutes * 60
print(f"{minutes} minuti pärast sulgeb arvuti.")
time.sleep(seconds)
os.system("shutdown /s /t 1")
2.4 Tähtsad märkused
Ajastamisfunktsiooni kasutamisel tuleb arvestada, et arvuti taaskäivitamisel või skripti katkestamisel võib sulgemine ära jääda. Samuti võib pooleli olevate oluliste ülesannete katkestamine põhjustada andmekadu või süsteemivigu.
2.5 Kokkuvõte
time
-mooduliga ajastatud sulgemine on väga mugav tööriist pärast ülesannete lõpetamist arvuti automaatseks sulgemiseks. See sobib eriti hästi pikkade ülesannete või kindlal ajal planeeritud sulgemise jaoks, säästes energiat ja automatiseerides töövoogu.
3. Kuidas ajastada arvuti sulgemine kindlal kellaajal
Kui on vaja arvuti sulgeda kindlal kellaajal, saab seda teha Pythoni datetime
-mooduli abil. Näiteks öösel pärast varundamise lõpetamist või siis, kui soovite arvuti kindlal ajal automaatselt välja lülitada.
3.1 Mis on datetime
-moodul?
datetime
-moodul võimaldab hallata kuupäevi ja kellaaegu. Selle abil saab võrrelda praegust aega tulevase ajaga ning käivitada sulgemise õigel hetkel.
3.2 Põhiline skript
Allpool on näide skriptist, mis sulgeb arvuti määratud kellaajal.
import os
import time
from datetime import datetime
def shutdown_at_time(target_hour, target_minute):
# Praegune aeg
current_time = datetime.now()
target_time = current_time.replace(hour=target_hour, minute=target_minute, second=0, microsecond=0)
# Kui aeg on juba möödas, lükatakse see järgmisele päevale
if current_time > target_time:
target_time = target_time.replace(day=current_time.day + 1)
# Ooteaja arvutamine
time_diff = (target_time - current_time).total_seconds()
print(f"Sulgemine on ajastatud: {target_time.strftime('%H:%M')}")
time.sleep(time_diff)
# Sulgemise käivitamine
os.system("shutdown /s /t 1")
# Ajasta sulgemine kell 23:30
shutdown_at_time(23, 30)
3.3 Koodi selgitus
datetime.now()
: tagastab praeguse aja.target_time
: määrab sihtaja (nt 23:30).- Aja korrigeerimine: kui määratud aeg on juba möödas, seatakse see järgmisele päevale.
time.sleep()
: ootab sulgemiseni jäänud aja sekundites.os.system()
: täidab sulgemiskäsu.
3.4 Kasutusstsenaariumid
3.4.1 Öised tööülesanded
Kui näiteks öine varundamine või failide kopeerimine lõppeb, saab arvuti automaatselt sulgeda. Näiteks 23:30 sulgemise määramine säästab vajaduse arvuti käsitsi välja lülitada.
3.4.2 Energia säästmine
Automaatne väljalülitamine pärast tööpäeva lõppu aitab energiat kokku hoida ja vähendab turvariske.
3.5 Kasutaja sisestatud aeg
Kasutaja võib sisestada ise kellaaja, millal arvuti sulgeda.
import os
import time
from datetime import datetime
def shutdown_at_time():
target_hour = int(input("Sisesta tund (24h formaadis): "))
target_minute = int(input("Sisesta minut: "))
current_time = datetime.now()
target_time = current_time.replace(hour=target_hour, minute=target_minute, second=0, microsecond=0)
if current_time > target_time:
target_time = target_time.replace(day=current_time.day + 1)
time_diff = (target_time - current_time).total_seconds()
print(f"Sulgemine ajastatud: {target_time.strftime('%H:%M')}")
time.sleep(time_diff)
os.system("shutdown /s /t 1")
shutdown_at_time()
3.6 Tähtsad märkused
- Süsteemi olek: veendu, et olulised tööd oleks lõpetatud, enne kui sulgemine toimub, et vältida andmekadu.
- OS-i erinevused: sulgemiskäsud võivad erineda Windowsis, Linuxis ja macOS-is, seega tuleb vastavalt kohandada.
3.7 Kokkuvõte
datetime
-mooduli abil saab arvuti kindlal ajal sulgeda. See sobib hästi öiste tööde või energiahalduse jaoks, pakkudes paindlikkust ja automatiseerimist.

4. Arvuti sulgemine subprocess-mooduli abil
subprocess
-moodul pakub Pythoni skriptides süsteemikäskude täitmiseks paindlikuma ja võimsama viisi kui os.system()
. See võimaldab paremat veakäsitlust ja käsu tulemuste kontrollimist.
4.1 Mis on subprocess-moodul?
subprocess
-moodul võimaldab Pythoni kaudu käivitada väliseid käske ja programme. Erinevalt os.system()
-ist saab siin hõlpsalt hallata vigu ja tulemusi.
4.2 Põhiline skript
Allpool on näide Windowsi arvuti sulgemiseks:
import subprocess
def shutdown_computer():
try:
# Windowsi sulgemiskäsk
subprocess.run(["shutdown", "/s", "/t", "1"], check=True)
print("Sulgemine algab.")
except subprocess.CalledProcessError as e:
print(f"Sulgemine ebaõnnestus. Viga: {e}")
shutdown_computer()
4.3 Koodi selgitus
subprocess.run()
: käivitab käsu. Käsk antakse listina.check=True
: tekitab vea, kui käsk ebaõnnestub.CalledProcessError
: erind, mida saab kasutada vea põhjuse tuvastamiseks.
4.4 Veakäsitlus
subprocess
-mooduli abil saab hõlpsalt hallata olukordi, kus sulgemiskäsk ebaõnnestub, näiteks kui kasutajal puuduvad õigused.
import subprocess
def shutdown_computer():
try:
subprocess.run(["shutdown", "/s", "/t", "1"], check=True)
print("Sulgemine algab.")
except subprocess.CalledProcessError as e:
print(f"Sulgemine ebaõnnestus. Viga: {e}")
except Exception as e:
print(f"Tekkis ootamatu viga: {e}")
shutdown_computer()
4.5 Linux ja macOS
Subprocess toimib ka teistes süsteemides:
import subprocess
def shutdown_computer():
try:
subprocess.run(["shutdown", "-h", "now"], check=True)
print("Sulgemine algab.")
except subprocess.CalledProcessError as e:
print(f"Sulgemine ebaõnnestus. Viga: {e}")
shutdown_computer()
4.6 Kasutusnäited
4.6.1 Sulgemine pärast pikaajalist ülesannet
import subprocess
def perform_task_and_shutdown():
try:
subprocess.run(["python", "long_running_task.py"], check=True)
subprocess.run(["shutdown", "/s", "/t", "1"], check=True)
print("Ülesanne lõpetatud, arvuti sulgub.")
except subprocess.CalledProcessError as e:
print(f"Tekkis viga: {e}")
perform_task_and_shutdown()
4.6.2 Rakenduse sulgemise järel
import subprocess
import time
def shutdown_after_closing_app():
try:
subprocess.run(["jupyter", "lab", "stop"], check=True)
print("Jupyter Lab suleti.")
time.sleep(2)
subprocess.run(["shutdown", "/s", "/t", "1"], check=True)
except subprocess.CalledProcessError as e:
print(f"Viga: {e}")
shutdown_after_closing_app()
4.7 Kokkuvõte
subprocess
-moodul võimaldab Pythonis arvuti sulgemist täpsemalt juhtida kui os.system()
. See sobib keerulisemate stsenaariumide jaoks, kus on vaja vigade käsitlemist või rakenduste lõpetamist enne arvuti sulgemist.
5. Kokkuvõte
Selles artiklis vaatasime erinevaid viise, kuidas Pythoni abil arvutit sulgeda. Iga meetod sobib erinevatesse olukordadesse – alates lihtsatest skriptidest kuni keerukamate lahendusteni.
5.1 Põhiline sulgemismeetod
os
-mooduli kasutamine on kõige lihtsam viis arvuti sulgemiseks. See töötab Windowsis, Linuxis ja macOS-is ning sobib hästi ka algajatele.
5.2 Ajastatud sulgemine
time
-mooduli abil saab määrata, et arvuti sulguks pärast kindla aja möödumist. See on kasulik näiteks pikkade ülesannete lõpus või planeeritud automaatseks väljalülitamiseks.
5.3 Sulgemine kindlal kellaajal
datetime
-mooduli abil saab arvuti sulgeda täpselt määratud ajal. See sobib energia kokkuhoiuks või öiste tööde automatiseerimiseks.
5.4 Subprocess-moodul
subprocess
-moodul pakub täiustatud juhtimist: parem veakäsitlus, tulemuste kontroll ja võimalus sulgeda arvuti alles pärast teiste programmide või ülesannete lõpetamist.
5.5 Millist meetodit valida?
- Lihtsateks ülesanneteks:
os
-moodul. - Kui vaja ajastust minutite kaupa:
time
-moodul. - Kui vaja sulgeda kindlal kellaajal:
datetime
-moodul. - Kui vaja keerukamat juhtimist ja veakäsitlust:
subprocess
-moodul.
5.6 Lõppsõna
Python ei ole vaid programmeerimiskeel, vaid ka võimas tööriist igapäevaste toimingute automatiseerimiseks. Sulgemisskriptide abil saate muuta oma töövoo tõhusamaks, säästa energiat ja aega ning kohandada lahendusi vastavalt enda vajadustele.