我正试图从python脚本访问/修改一个文件。现在,我有这个:
outfile = open("file.txt","a")
outfile.write("something")
outfile.write("something else")
outfile.close()
如果file.txt位于另一台计算机上,有什么方法可以访问它吗?
编辑:原来我可以将文本文件导入到本地计算机,所以问题解决了,我想!
是的,有.
- 使用SCP将远程文件临时下载到Python代码所在的本地计算机
- 修改它
- 使用SCP将修改后的文件上载到远程
步骤1:下载远程文件
scp -i ~/.ssh/the-ssh-key remoteusername@remote-ip:/remote-location/remote-file.txt /local-location/local-file.txt
第二步:修改文件后,将其上传到远程
scp /local-location/local-file.txt -i ~/.ssh/the-ssh-key remoteusername@remote-ip:/remote-location/remote-file.txt
然后,如果需要,可以删除临时本地文件。
如果您想在远程上创建一个新文件:
在Python所在的本地计算机中创建文件。
创建文件。
使用SCP将创建的文件上载到远程。
scp/local-location/local-file.txt-i~/.ssh/ssh密钥remoteusername@remote-ip:/remote-location/remote-file.txt
如果您想使用密码而不是ssh密钥访问远程,或者想了解有关SCP使用的更多信息,您可以按照以下说明操作:
https://linuxize.com/post/how-to-use-scp-command-to-securely-transfer-files/
替代方法
您可以更喜欢python中的子流程,而不是使用纯SCP命令。
import subprocess
subprocess.run(["scp", FILE, "USER@SERVER:PATH"])
#e.g. subprocess.run(["scp", "foo.bar", "joe@srvr.net:/path/to/foo.bar"])
来源:https://stackoverflow.com/a/68365/15529570