我想在 Python 中使用 rsync 递归地计算远程服务器路径中的文件数?我试过这样做:
def find_remote_files(source, password):
cmdline = ['sshpass', '-p', password, 'rsync', '--recursive', source]
with open(os.devnull, "w") as devnull:
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stderr=devnull)
try:
for entry in proc.stdout:
items = entry.strip().split(None, 4)
if not items[0].startswith("d"):
yield lent(items[4])
proc.wait()
except:
# On any exception, terminate process and re-raise exception.
proc.terminate()
proc.wait()
raise
它适用于我的文件较少的情况。但如果我有超过 3000 个文件,rsync 将需要很长时间才能将其存储在列表中并再次计算长度。这就是为什么,我想知道是否有一个rsync
命令只是为了计算文件。