remotedesktopverbindung: auf durchgereichten USB-Stick zugreifen ...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
drnicolas
User
Beiträge: 105
Registriert: Sonntag 24. Juli 2016, 10:32

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.
Sirius3
User
Beiträge: 18253
Registriert: Sonntag 21. Oktober 2012, 17:20

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.

Code: Alles auswählen

from pathlib import Path
drive_e = Path("//TSCLIENT/E")
for path in drive_e:
    print(path)
Wenn Du Informationen zu Shares möchtest, kannst Du Dir win32net.NetShareEnum anschauen.
Benutzeravatar
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):

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())

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.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
michaelmayer
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:

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()
2. Zugriff über Netzwerkfreigabe:

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)
Fazit: Beide Ansätze sind möglich. Netzwerkfreigabe könnte zuverlässiger sein, wenn der Stick keinen festen Laufwerksbuchstaben ha
Benutzeravatar
__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
Antworten