簡體   English   中英

如何在python中的兩台連接的計算機之間傳輸文件?

[英]How to transfer a file between two connected computers in python?

我不知道之前是否已經回答過這個問題(我在線查看但找不到),但是如何通過網絡將文件(如果可能的話.exe)發送到另一台連接到網絡的計算機? 我試過套接字,但我只能發送字符串,我試圖學習ftplib,但我根本不理解它,或者如果ftp甚至是我正在尋找的東西,所以我完全停頓了。 任何輸入都值得贊賞(如果有人可以解釋FTP,就更像是套接字嗎?我見過的所有示例都沒有客戶端可以連接的服務器程序。)

A. Python3

我們可以使用http.server 這里回答SimpleHTTPServer被移動到python3 http.server

python -m http.server

Python2

我有時會使用SimpleHTTPServer

python -m SimpleHTTPServer

...它將在端口8000上為當前目錄中的文件提供服務。在另一台計算機上打開您的Web瀏覽器並下載您想要的任何內容。

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

$ ifconfig
enp0s31f6 Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0

在Windows中它是ipconfig

然后,在另一台計算機中,您將瀏覽器發送到: http//10.0.0.38000

B.如果你啟用了SSH,你可以使用paramiko連接和SFTP傳輸任何你想要的。

發送方的一些簡單示例代碼:

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

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

      packet = f.read(blocksize)

哪里:

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)

看看paramiko。 它可以做scp和sftp。

http://www.lag.net/paramiko/

ZeroMQ有助於替換套接字。

您可以在一個命令中發送整個文件。

ZMQ“派對”可以用任何主要語言編寫,對於給定的ZMQ驅動的軟件,它寫入的另一端並不重要。

從他們的網站:

它為您提供了套接字,可以在各種傳輸中傳輸整個消息,如進程內,進程間,TCP和多播。 您可以使用扇出,發布 - 訂閱,任務分發和請求 - 回復等模式連接N到N的套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM