提问人:glukoff 提问时间:10/9/2023 更新时间:10/9/2023 访问量:51
rsync 或任何其他使用 Python 将文件复制到新目录的方法
rsync or any other way to copy files to a new directory using Python
问:
query = 'rsync -zavP [email protected]:/home/server/Catalog/ /home/user/sample'
os.popen(query)
os.chdir('/home/user/sample')
files = glob.glob(*.*)
Rsync 效果很好。复制文件,并在用户目录中创建一个示例子目录,该子目录以前不存在。但是当我尝试获取文件列表时,结果发现它是空的。事实是,在脚本完成工作之前,操作系统不会更新有关目录内容的信息。如果将 rsync 和 glob 拆分为两个不同的脚本并按顺序手动运行它们,您将获得一个文件列表。如何将文件复制到一个新的不存在的目录并立即在一个脚本中获取文件列表?谢谢!
答:
1赞
Rojin
10/9/2023
#1
您可以使用 from module 或 go for module 并用于列出所有内容。这些是首选方法,因为它们也显示修改后的时间。os.scandir()
os
pathlib
iterdir()
os.listdir()
我确实相信,与其使用两个单独的脚本,不如使用两个单独的函数;这样,您可以确保在第一个函数 - 复制 - 完成后进行列表。 例如:
def copy_files():
rsync ...
return
def list_files():
os.scandir()
...
另一件事是使用一些等待方法:
from waiting import wait
...
wait(YOUR_FUNCTION(), ...)
...
我不认为这个函数在这里有用;因为您不知道复制所花费的时间。sleep()
最后但并非最不重要的一点是,您还可以使用 rsync 标志来显示复制的进度/文件。
希望对你有所帮助。
评论
os.popen