Ich schätze, bei diesem Projekt müssen alle passen. ich frage aber mal trotzdem:
Ich möchte mit einem Python-Programm einen USB-Stick durchsuchen, den inhalt analysieren und Dateien kopieren.
Dazu müsste ich einen Laufwerksbuchstaben herausfinden. Wie geht das ?
Jetzt kommt's:
Das ganze soll auf einem remote-Computer unter Windows laufen.
Aktuell reiche ich den USB-Stick an den remote-Computer durch und sehe dann diesen Stick - allerdings unter 'Dieser PC' und als Eintrag 'E auf BACKOFFICE1'
und nicht als Laufwerksbuchstaben.
geht sowas überhaupt?
Alternativ könnte ich den Stick auf einem bestimmten Rechner freigeben und über eine netzwerkfreigabe zugreifen.
remotedesktopverbindung: auf durchgereichten USB-Stick zugreifen ...
Das ist ja keine Pythonfrage sondern eher eine Windows Frage.
Du musst herausfinden unter welchem UNC-Pfad dein Laufwerk erscheint.
Damit kannst du ganz normal wie auf alle anderen Dateien zugreifen.
Wenn Du Informationen zu Shares möchtest, kannst Du Dir win32net.NetShareEnum anschauen.
Du musst herausfinden unter welchem UNC-Pfad dein Laufwerk erscheint.
Damit kannst du ganz normal wie auf alle anderen Dateien zugreifen.
Code: Alles auswählen
from pathlib import Path
drive_e = Path("//TSCLIENT/E")
for path in drive_e:
print(path)
- DeaD_EyE
- User
- Beiträge: 1224
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
https://stackoverflow.com/questions/122 ... ble-drives
Ich würde psutil verwenden und um pywin32 einen sehr großen Bogen machen, sofern das möglich ist.
Beispiel für Windows und Linux (vorsicht, match-case erst ab 3.10):
PS: Den Import von psutil kannst/solltest du auch nach oben packen. Ich mache da so, wenn es Funktionen sind, die von mehreren OS unterstützt werden sollen und unterschiedliche Module benötigt werden. Wenn ich den Code so unter Linux ausführe, wird psutil erst gar nicht importiert. Wenn man den Code so unter Windows ausführen würde und psutil nicht installiert ist, kommt est erst beim Aufruf der Funktion zu einem ImportError. Nicht jeder mag das.
Ich würde psutil verwenden und um pywin32 einen sehr großen Bogen machen, sofern das möglich ist.
Beispiel für Windows und Linux (vorsicht, match-case erst ab 3.10):
Code: Alles auswählen
import os
import platform
from pathlib import Path
def get_removeable_drives() -> list[Path]:
"""
Return all 'removeable' drives as Path in a list.
"""
match platform.system():
case "Windows":
import psutil
return [
Path(drive.mountpoint)
for drive in psutil.disk_partitions()
if "removable" in drive.opts
]
case "Linux":
return [
path
for path in Path("/run/media", os.getlogin()).iterdir()
if path.is_mount()
]
case _ as system:
raise RuntimeError(f"{system} is not supported")
print(get_removeable_drives())
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
-
- User
- Beiträge: 1
- Registriert: Dienstag 29. Oktober 2024, 02:31
- Kontaktdaten:
1Laufwerksbuchstaben über Python ermitteln:
Verwende das psutil-Modul, um angeschlossene Laufwerke zu finden.
Beispiel:
2. Zugriff über Netzwerkfreigabe:
Gib den USB-Stick auf dem Remote-PC frei.
Greife dann per UNC-Pfad zu, z. B. \\BACKOFFICE1\E$\.
Fazit: Beide Ansätze sind möglich. Netzwerkfreigabe könnte zuverlässiger sein, wenn der Stick keinen festen Laufwerksbuchstaben ha
Verwende das psutil-Modul, um angeschlossene Laufwerke zu finden.
Beispiel:
Code: Alles auswählen
import psutil
def finde_usb_laufwerk():
for partition in psutil.disk_partitions():
if 'removable' in partition.opts:
print(f"Gefunden: {partition.device}")
finde_usb_laufwerk()
Gib den USB-Stick auf dem Remote-PC frei.
Greife dann per UNC-Pfad zu, z. B. \\BACKOFFICE1\E$\.
Code: Alles auswählen
import shutil
quelle = r"\\BACKOFFICE1\E$\Ordner\Datei.txt"
ziel = r"C:\lokal\Datei.txt"
shutil.copy(quelle, ziel)
- __blackjack__
- User
- Beiträge: 14005
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@michaelmayer Willkommen im Forum. Und bitte überlegen ob *Du* tatsächlich hier mit anderen Menschen kommunizieren möchtest, statt Chat-GPT-Antworten hier rein zu kippen, die noch mal wiederholen was bereits von echten Menschen mit Expertise geschrieben wurde. 
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis