我想在python中创建脚本,但是出现此错误。可以请任何人帮助我。Traceback (most recent call last): File "./python_test.py", line 7, in <module> if i in range(1, 254):NameError: name 'i' is not defined=================================#!/usr/bin/env pythonimport osif i in range(1, 254): all=os.system("echo 10.11.1.i") print(all)=====================================for ip in $(seq 1 254);do echo 10.11.1.$ip;done
3 回答

蛊毒传说
TA贡献1895条经验 获得超3个赞
要遍历您使用的范围内的所有数字for
,而不是if
。另外,range()
不包含最终值,因此,如果要254
使用,则必须使用range(1, 255)
。
for i in range(1, 255):
变量不会在字符串内扩展。使用字符串格式。
allresults=os.system("echo 10.11.1.%d" % i) print(allresults)
您也不应该使用all
变量名称,它是内置Python函数的名称。

长风秋雁
TA贡献1757条经验 获得超7个赞
尝试以下代码,您需要将if语句更改为
#!/usr/bin/env python
import os
for i in range(1, 255):
all_=os.system("echo 10.11.1."+str(i))
print(all_)

摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
试试这个新的f字符串(通过python 3.6.0):
import os
for i in range(1, 255):
all_=os.system(f"echo 10.11.1.{i}")
print(all_)
或str.format:
import os
for i in range(1, 255):
all_=os.system("echo 10.11.1.{}".format(i))
print(all_)
注意:重命名为,all_因为它all是一个内置关键字,您不想覆盖它
添加回答
举报
0/150
提交
取消