Nur ein kurzer Überblick über das, was ich tue: Ich versuche, einige PDF-Zusammenführung Routine mit Python in einem Netzwerkverzeichnis zu automatisieren, die das Kopieren, Löschen und Erstellen von Dateien zu einem bestimmten umfasst Netzwerkstandort. Entschuldigung, wenn meine Sprache nicht sehr präzise ist.Zugriff auf einen Netzwerkordner über ein Python-Programm
Ich bin auf Windows 7 mit Python 3.6 codieren. Das Programm muss auf anderen Rechnern verteilt werden, so dass lokale und temporäre Fixes wahrscheinlich nicht helfen werden. Der Code, den ich geschrieben habe, ist voll funktionsfähig und funktioniert mit allen lokalen Ordnern und Dateien, aber jetzt, da ich ihn im Netzwerk nutzen muss, habe ich Schwierigkeiten, auf den Ordner zuzugreifen, den ich brauche. Hier
ist, was ich habe versucht:
os.system("pushd " + "\\" + "\\netWorkDrive\Reports")
check_output("pushd " + "\\" + "\\netWorkDrive\Reports", shell=True)
pushd
und popd
gut funktionieren, wenn nur in der cmd eingeben, aber wenn ich System tun Anrufe über Python, sie einfach nicht durch gehen. Ich sende einen Systemaufruf, und es läuft korrekt, aber wenn ich dann ein aktuelles Verzeichnis "cd", zeigt es, dass ich immer noch in meinem vorherigen bin. Wenn Sie den Befehl manuell ausführen, funktioniert alles wie gewünscht. Ich habe das Problem gegoogelt, aber habe nicht gefunden, dass etwas funktioniert/nützlich ist. Ich würde mich über Vorschläge sehr freuen und mich wissen lassen, ob ich mein Problem weiter klären muss.
Vielen Dank!
könnte eine Reihe von Dingen sein. Gibt es eine globale Adresse für das Laufwerk? eher als ein lokal abgebildeter "Buchstabe"? (Beispielsweise haben große Firmen-Intranet-Netzwerke eine globale Adresse, die Mitarbeiter oft ihrem eigenen Laufwerk "N:" (oder welchem Buchstaben auch immer) zuordnen. Versuchen Sie, die Gesamtadresse zu verwenden. Versuchen Sie außerdem, auf das Laufwerk über eine Zeichenfolge mit einem vorangestellten "r" zuzugreifen 'als solches: 'r'C:/Users/Vlox/Stuff'' das' r 'steht für eine rohe Zeichenkette, daher werden Schrägstriche richtig gelesen (normalerweise sind sie ein Python-Escape-Zeichen, das das Problem verursachen könnte) Ihre Backslashes ''C: // Benutzer // Vlox // Stuff'' – Vlox
Ich glaube, ich verwende eine globale Adresse, da es ist, was alle anderen auf das Netzwerk zugreifen" \\ unserOrdner \ Berichte ". Von dem, was ich verstehe , 'popd' erzeugt ein temporäres Laufwerk für mich, aber ich bin noch nicht in diesem Stadium. Die Art, wie ich Schrägstriche eingegeben habe, berücksichtigt bereits Escape-Zeichen, da ich eine Zeichenfolge mit einem eigenen Pfadnamen getestet habe gab immer noch einen Versuch zu "r", leider hat das nicht geholfen. –
Der PUSHD funktioniert wahrscheinlich gut. Wenn die erstellte Shell jedoch beendet wird, kehren Sie zu Ihrem vorhandenen Prozess zurück, der vor dem Aufruf von os.system() immer noch über die cwd verfügt. – lit