Ich versuche, eine bestimmte Datei in ein anderes Verzeichnis zu verschieben, nachdem ich einen Vorgang ausgeführt habe.
Das Verschieben der Datei war mit Connection.rename
import pysftp
conn = pysftp.Connection(host = 'host', username = 'user', password = 'password')
remote_src = '/dir1/file1.csv'
remote_dest = '/dir2/archive_file1.csv'
conn.rename(remote_src, remote_dest)
conn.close()
Das LastModified -Datum bleibt jedoch das gleiche wie in der Originaldatei.
Gibt es eine Möglichkeit, das LastModified -Datum beim Umbenennen auf das aktuelle Datum zu aktualisieren?
2 Antworten
Dank der Antwort von @MartinPrikryl konnte ich endlich meinen Zweck erreichen.
pysftp.Connection hat eine Eigenschaft sftp_client, der gemäß Dokumentation den aktiven paramiko.SFTPClient Objekt.
Ich habe diese Eigenschaft verwendet, um paramiko.SFTPClient aufzurufen. utime
import pysftp
conn = pysftp.Connection(host = 'host', username = 'user', password = 'password')
remote_src = '/dir1/file1.csv'
remote_dest = '/dir2/archive_file1.csv'
conn.rename(remote_src, remote_dest)
# below is the line I added after renaming the file
conn.sftp_client.utime(remote_dest, None)
conn.close()
Durch das Umbenennen (Verschieben) einer Datei wird die Änderungszeit der Datei nicht geändert. Es ändert die Änderungszeit des Ordners.
Wenn Sie die Änderungszeit der Datei ändern möchten, müssen Sie dies explizit tun. pysftp hat dafür keine API. Sie können jedoch Paramiko SFTPClient.utime
verwenden. Siehe auch pysftp vs. Paramiko.
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.