如何在python中的两台连接的计算机之间传输文件?

Bab*_*oon 6 python sockets file

我不知道之前是否已经回答过这个问题(我在线查看但找不到),但是如何通过网络将文件(如果可能的话.exe)发送到另一台连接到网络的计算机?我试过套接字,但我只能发送字符串,我试图学习ftplib,但我根本不理解它,或者如果ftp甚至是我正在寻找的东西,所以我完全停顿了.任何输入都值得赞赏(如果有人可以解释FTP,就更像是套接字吗?我见过的所有例子都没有客户端可以连接的服务器程序.)

zee*_*kay 8

答:我http.server有时使用这个:

python -m http.server
Run Code Online (Sandbox Code Playgroud)

...它将在端口8000上为当前目录中的文件提供服务.在另一台计算机上打开您的Web浏览器并下载您想要的任何内容.

要知道您的计算机的IP地址,您可以使用(在Ubuntu中)ifconfig,例如:

python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

然后,在另一台计算机中,您将浏览器发送到:http://10.0.0.3:8000.

B.如果你启用了SSH,你可以使用paramiko连接和SFTP传输任何你想要的.


g.d*_*d.c 5

发送方的一些简单示例代码:

if os.path.exists(df):
  with open(df, 'rb') as f:
    packet = f.read(blocksize)

    while packet != '':
      conn.send(packet)

      packet = f.read(blocksize)
Run Code Online (Sandbox Code Playgroud)

哪里:

df = 'path/to/data/file'
blocksize = 8192 # or some other size packet you want to transmit.  
                 # Powers of 2 are good.
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Run Code Online (Sandbox Code Playgroud)