【发布时间】:2020-10-29 12:49:55
【问题描述】:
我正在尝试从 python 脚本调用子进程。脚本将在 linux 上使用特定参数调用“lftp”,如下所示。问题是我不能传递文件名(文件名每天都不一样)。
我几乎尝试了所有组合,但都没有成功(例如:${fname}、$fname、{fname} 等等)。我的想法不多了,所以我正在寻求帮助。
每次我收到来自 ftps 服务器Access failed: 550 The system cannot find the file specified 的响应时。我可以正常登录并更改文件夹。
import subprocess
import datetime
fname=different_every_day
proc=subprocess.call(
["lftp", "-u", "user:password", "ftps://servername:990", "-e",
"set ftp:ssl-protect-data true; set ftp:ssl-force true; "
"set ssl:verify-certificate no;get ${fname}"])
print(proc)
附:接近正确的答案是 wagnifico,所以我会接受他的答案,但对于其他需要解决方案的人来说,它假设如下:
proc=subprocess.call(["lftp","-u","user:pass","ftps://example.something","-e","set ftp:ssl-protect-data true; set ftp:ssl-force true; set ssl:verify-certificate no;cd Ewidencja;pget "+'"'+fname+'"'])
【问题讨论】:
-
你能把你需要在命令行上运行的全部命令发给我吗?
-
实际上这几乎是整个命令,但我将编辑有问题的代码。我要做的只是 ftps 服务器上的文件名每天都会不同 - 它是自动生成的,例如今天的文件名将是: 2020-10-29 - All computer.xls ,明天会有 2020-10- 30 - 所有的计算机.xls 等等
标签: python subprocess lftp