2

私のファイルサーバーにファイルをアップロードするためのpythonスクリプトを書いています:

host = "myhost.dev"
tn = telnetlib.Telnet()
tn.open(host, 5202)
print tn.read_until("\n")
fp = "./output"

f = open(fp, "r")
f_body = f.read()

tn.write(f_body)
tn.write("\n")

f.close()

ファイルに改行文字0a- があり、それが gzip ファイルのバイナリ データの一部である場合、それをエスケープするにはどうすればよいですか? python telnetlib は単独で実行できますか? または私はそれを行う必要がありますか?

よろしくお願いします

4

2 に答える 2

4

telnet はファイル転送に最適なオプションではないと思いますが、それでもファイルのアップロードに使用したい場合は. 次のことを試すことができます(試したことはありませんが、うまくいくはずです)

#On client side
...
import base64
with open('test.gz','rb') as f:
    content = f.read()

content_serialized = base64.b64encode(content)+'\n'
...
#On server side
...
import base64
content = base64.b64decode(content_serialized.rstrip('\n'))
    with open('test.gz','wb') as f:
        f.write(content)    
...
于 2011-07-18T10:16:24.163 に答える