python将txt文件转csv文件,对端口查找进行处理。

由于想写根据端口号查看端口,想着1对1的对应关系,输入端口号,返回端口信息。
网上没有找到端口号对应端口信息的csv文件,只找到了txt文件。
如下:
在这里插入图片描述

1.对txt文件进行处理。

这里可以通过直接对txt文件进行操作,将文本每行输入到字符串中,再匹配需要查找的端口号的长度,进行字符匹配,输出结果。

# -*- coding: utf-8 -*-
chioce = "1"
while chioce == "1":
    port = input("需要查找的端口:")
    len_port = len(port)
    filename = "port.txt"
    f = list(open(filename,encoding="utf-8"))
    for s in f:
        if s[:len_port] == port:
            print(s)
    chioce =input("是否继续,是输入1:")

运行结果:匹配所有以用户输入字符串开头的内容,直接输出匹配到的内容。
在这里插入图片描述

2.将txt文件转换为csv文件进行处理。

要进行1对1的匹配,那么用数据处理的方式,我以为会很简单。
首先进行创建,读取文件,转为csv文件。

# -*- coding: utf-8 -*-
import csv
fh = open(r"port.csv","w+",newline="",encoding="utf-8")
writer = csv.writer(fh)
writer.writerow(["端口号","端口提供服务"])
dt = open(r"port.txt",encoding="utf-8")
res = []
for i in dt:
    d = [x for x in i.strip().split(":")]
    res.append(d)
print(res)
writer.writerows(res)
dt.close()
fh.close()

注文件中包含中文字符,csv文件操作会出问题,将编码设置为utf-8才行。

然后再根据内容匹配进行查找:

# -*- coding: utf-8 -*-
"""
Created on Sat Jul 18 08:47:04 2020

@author: xu
"""
import csv
chioce = "1"
while chioce == "1":
    port = input("需要查找的端口:")

    filename = "port.csv"
    with open(filename,encoding="utf-8") as f:
        reader = csv.reader(f)
        header_row = next(reader)#读取第一行,第一行是行的属性。
        for i in enumerate(header_row): 
            for row in reader:
                if row[0] == port:
                    print(row[1])
                    
    chioce = input("是否继续,继续输入1:")

运行结果:
在这里插入图片描述
这样只能查找到xx端口的内容,必须进行匹配该内容才能输出内容。

这样有点傻瓜,也可以用字符匹配的方法。让其可以匹配到多个字符。

 if row[0][:len(port)] == port:
                    print(row[0]+":"+row[1])

结果如下:
在这里插入图片描述
这样就好看多了,其实我是第一时间考虑了txt文件转为csv文件进行操作的,花费了诸多时间,而在行文的时候才想到直接用字符串进行文本操作,几分钟就搞定了。
真是南辕北辙啊,诸位引以为鉴,寻找最佳方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值