python文件传输
时间: 2023-11-03 12:59:55 浏览: 49
在Python中进行文件传输可以使用ftplib库。首先,你需要使用FTP类来建立FTP连接。你可以使用该类的login方法来登录到FTP服务器,并使用quit方法来关闭连接。接下来,你可以使用FTP类的其他方法来进行文件传输操作,例如上传文件、下载文件等。另外,你还可以使用socket库来进行文件传输。在服务器端,你可以创建一个socket对象,并使用bind方法绑定监听端口,使用listen方法开始监听。当有客户端连接时,可以使用accept方法接受连接。然后,你可以使用recv方法接收数据,根据数据的内容执行相应的操作,例如获取文件、发送文件等。在客户端,你可以使用socket库创建一个socket对象,并使用connect方法连接到服务器。然后,你可以使用send方法发送数据,根据需要发送文件内容。接收数据时,你可以使用recv方法接收数据,并将数据写入文件中。最后,记得关闭连接。以下是一个示例代码:
```
# 服务器端
import socket
import os
import hashlib
server = socket.socket()
server.bind(("localhost", 6969))
server.listen(5)
while True:
conn, addr = server.accept()
while True:
data = conn.recv(1024)
if not data:
break
cmd, filename = data.decode("utf-8").split(" ")
if cmd == "get":
if os.path.isfile(filename):
size = os.stat(filename).st_size
conn.send(str(size).encode("utf-8"))
conn.recv(1024)
m = hashlib.md5()
f = open(filename, "rb")
for line in f:
conn.send(line)
m.update(line)
f.close()
md5 = m.hexdigest()
conn.send(md5.encode("utf-8"))
server.close()
# 客户端(received_file.py)
import socket
sock = socket.socket()
host = socket.gethostname()
port = 12312
sock.connect((host, port))
sock.send(b"Hello server!")
with open("Received_file", "wb") as out_file:
while True:
data = sock.recv(1024)
if not data:
break
out_file.write(data)
sock.close()
```