我正在学习使用Python编程,但仍处于起步阶段。 我写了2个脚本来从nmap输出中切出IP地址。
第一个脚本剪切出IP地址:
import re
file = open("test.txt", "r")
ips = open("ips.txt", "w+")
for line in file:
ip = re.findall(r'[0-9]+(?:\.[0-9]+){3}', line)
if "filtered" in line:
ips.write(str(ip) + "\n")
此代码在Windows和Linux上都能正常工作,但是(我希望我是对的)for循环将每一行作为列表获取。这意味着我的IP地址的格式为['x.x.x.x']。 我编写了第二个脚本来删除所有不必要的字符(['和]):
ip = open("ips.txt", "r")
ip_filtered = open("ip_filtered.txt", "w")
for line in ip:
s = line
neu = s.translate(({ord(i): None for i in '[\']'}))
ip_filtered.write(str(neu))
此脚本在Windows上运行良好(我得到了一个新文件,仅带有IP地址),但是在Linux上却出现以下错误:
Traceback (most recent call last):
File "zeichen_loeschen.py", line 6, in <module>
neu = s.translate(({ord(i): None for i in '[\']'}))
TypeError: expected a string or other character buffer object
此错误的原因是什么? 在此先感谢:)
答案 0 :(得分:0)
在linux(使用python 2.7)上使用python命令运行时,我得到相同的消息。尝试使用python3命令运行它,您的代码应该可以正常工作。