π ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ² python Π½Π° Windows Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°? π¨βπ»
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ² Π² Python?
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ² Π² Python, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ psutil
. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import psutil
# ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ²
disk_partitions = psutil.disk_partitions()
# ΠΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ²
for partition in disk_partitions:
print(partition.device)
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ disk_partitions
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ psutil
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΈΡΠΊΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΈΡΠ΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠΌΡ Π΄ΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° device
.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ² Π² Python
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΈΡΠΊΠΎΠ² Π² Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Python.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ os
ΠΠΎΠ΄ΡΠ»Ρ os ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ listdir, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΈΡΠΊΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
import os
drives = []
for drive in os.listdir('/'):
if os.path.isdir(drive):
drives.append(drive)
print(drives)
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠΎΠΊ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ°ΠΊ Π΄ΠΈΡΠΊΠΈ, ΡΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² ΠΊΠΎΡΠ½Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ, Π΄Π»Ρ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ psutil
ΠΠΎΠ΄ΡΠ»Ρ psutil ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π² Python. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΈΡΠΊΠΎΠ².
import psutil
drives = psutil.disk_partitions()
drive_names = [drive.device for drive in drives]
print(drive_names)
ΠΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ disk_partitions ΠΌΠΎΠ΄ΡΠ»Ρ psutil Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΈΡΠΊΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π° Π΄ΠΈΡΠΊΠΎΠ² ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΈΠΌΡ Π΄ΠΈΡΠΊΠ°.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ctypes
ΠΠΎΠ΄ΡΠ»Ρ ctypes ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ· Python. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ².
import ctypes
def get_drives():
drives = []
bitmask = ctypes.windll.kernel32.GetLogicalDrives()
for letter in range(65, 91):
if bitmask & 1:
drives.append(chr(letter) + ':')
bitmask >>= 1
return drives
drive_names = get_drives()
print(drive_names)
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ get_drives, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ GetLogicalDrives ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ kernel32 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄ΠΈΡΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π±ΠΈΡΡ ΠΌΠ°ΡΠΊΠΈ ΠΈ, Π΅ΡΠ»ΠΈ Π±ΠΈΡ ΡΠ°Π²Π΅Π½ 1, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π±ΡΠΊΠ²Ρ Π΄ΠΈΡΠΊΠ° Π² ΡΠΏΠΈΡΠΎΠΊ drives. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΈΡΠΊΠΎΠ² Π² Python. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ os, psutil ΠΈ ctypes Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠΊΠΎΠ² Π² Python. ΠΡΠ°ΠΊΡΠΈΠΊΡΠΉΡΠ΅ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ .