【发布时间】:2014-10-23 01:45:15
【问题描述】:
所以我打开了我的文件并使用 readlines() 模块将每一行拆分为一个列表,但我试图从 readlines() 中获取每个源 IP、src 端口、dest IP 和 dest 端口。基本上我被要求做的是:“打开提供的转储文件并为 src 和 dest IP 以及 src 和 dest 端口拆分每一行”。此外,“创建一个名为 Hosts 的字典;主机的键将是从文件中解析的 IP(src 和 dest)。每个键的值将是一个双元素列表,其中第一项将是 IP 的多少倍是源,秒是 IP 是目标的次数”。
这是解析文件的一部分...
08:43:56.558781 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [S], seq 3055452145, win 29200, options [mss 1460,sackOK,TS val 82505 ecr 0,nop,wscale 10], length 0
08:43:56.592590 IP 50.116.53.73.80 > 192.168.233.128.56779: Flags [S.], seq 1586785220, ack 3055452146, win 64240, options [mss 1460], length 0
08:43:56.592688 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [.], ack 1, win 29200, length 0
08:43:56.700460 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [P.], seq 1:300, ack 1, win 29200, length 299
08:43:56.701082 IP 50.116.53.73.80 > 192.168.233.128.56779: Flags [.], ack 300, win 64240, length 0
08:43:57.034951 IP 50.116.53.73.80 > 192.168.233.128.56779: Flags [P.], seq 1:1395, ack 300, win 64240, length 1394
08:43:57.034976 IP 192.168.233.128.56779 > 50.116.53.73.80: Flags [.], ack 1395, win 32062, length 0
08:43:57.118796 IP 192.168.233.128.56780 > 50.116.53.73.80: Flags [S], seq 3778524509, win 29200, options [mss 1460,sackOK,TS val 82645 ecr 0,nop,wscale 10], length 0
仅供参考,文件格式如下:
IP (source.Sourceport) > (dest.Destport)
这是我目前所拥有的:
import os
while True:
try:
f = open(os.path.expanduser("~/Documents/Pys/ascii_dump.txt"))
print ("It Opened!")
break
except:
print ("Cannot Open!")
break
lines = f.readlines()
更新 现在我正在寻找将一个字符的str(一行)拆分为另一个字符的最佳方法。所以说把它从一个“:”拆分到下一个“:”。
【问题讨论】:
-
对,所以尝试添加一些代码来解析这些行。或聘请开发人员。
-
好吧,最后一行对你没有任何好处;
readlines()不会“拆分每一行”,它只是将所有这些行原样复制到一个列表中,这并不比您已经拥有的可迭代对象(文件)好。同时,您还没有编写任何迭代行、拆分每一行或解析您拆分的部分的尝试。所以,您只是要求我们为您完成任务。 -
如果您需要一些提示才能开始:文件中的每一行都是一个
str;您只需使用一两个标准strmethods 即可完成所有拆分和解析。或者您可以使用正则表达式使其更紧凑,但如果您不知道那是什么,请不要担心。如果您尝试任何一种方式并陷入困境,那么您将在 SO 上提出一个很好的问题。 -
非常感谢约翰!我会考虑的!
-
这里的问题是我真的不知道该去哪里。我知道我可以使用 for 循环遍历文件,但它只是在 IP 上拆分。因此,也许我可以将 IP 的开头到 IP 的结尾拆分为任何章程编号,并对端口执行相同的操作。如果这有任何意义。
标签: python file text dictionary split