脚本可以在Windows上运行,但不能在Linux上运行吗?

时间:2020-05-05 07:41:07

标签: python

我正在学习使用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

此错误的原因是什么? 在此先感谢:)

1 个答案:

答案 0 :(得分:0)

在linux(使用python 2.7)上使用python命令运行时,我得到相同的消息。尝试使用python3命令运行它,您的代码应该可以正常工作。