I had to do some reading/writing of files from an SFTP source/destination and ended up putting together a simple context manager for being able to do this so that it follows the same general interface as
open()
for local files. Usage is as simple as
from open_sftp import open_sftp
path = "sftp://user:p@ssw0rd@test.com/path/to/file.txt"
# Read a file
with open_sftp(path) as f:
s = f.read()
print s
# Write to a file
with open_sftp(path, mode='w') as f:
f.write("Some content.")
It's as simple as that. The full code can be found as a
gist on GitHub.
Note: This assumes that the directory already exists, but one could modify this trivially to create the path automatically by adding the details from
this StackOverflow thread.
This is a smart blog. I mean it. You have so much knowledge about this issue, and so much passion. You also know how to make people rally behind it, obviously from the responses. Current rank on google.co.uk
ReplyDelete