蟒蛇;从带有readline()的.txt行转换为元组

时间:2017-12-12 12:30:28

标签: python-2.7 sockets udp tuples requirements.txt

我在python中创建一个客户端,当我想从.txt文件中使用ip和端口(用空格分隔)将其用于 .sendto(msg,(data) )

import socket
import sys
import os

sUDP = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

file = open("./file.txt")
data1 = file.readline()
msg = "hi"

sUDP.sendto(msg, (data1)) #THE ERROR

./file.txt包含:

127.0.0.1 40000

127.0.0.1 55000

我想sUDP.sendto(msg,(data1))正常工作或知道如何转换第一个读取行以分隔ip和端口以使元组使sendto工作

当我想编译时,这是控制台:

追踪(最近一次通话):   文件“cliente.py”,行什么,在     sUDP.sendto(msg,(data1))#THE ERROR TypeError:getsockaddrarg:AF_INET地址必须是tuple,而不是str

感谢所有帮助我的人!我很快就要完成这项工作

修改 我发现使用.split()我可以使用一个空格来制作两个分开的字符串。我唯一要做的就是使用int(port)将端口转换为int,我们可以创建元组!顺便说一句,我有一个更有效的方法从file.txt制作元组告诉我谢谢你!

2 个答案:

答案 0 :(得分:0)

  

通过这种方式,我有一种更有效的方法,可以通过file.txt告诉我元组

嗯,这肯定不会更有效,因为它与您要做的基本上相同-它只是结合了以下步骤:

data1 = tuple(t(v) for t, v in zip([str, int], open("file.txt").readline().split()))

答案 1 :(得分:-2)

使用tulple只是浪费。 只需在字典中使用集合。

这将是一个很好的选择

所以只需尝试使用列表和词典

相关问题