为了账号安全,请及时绑定邮箱和手机立即绑定

Bash到python脚本

Bash到python脚本

蓝山帝景 2021-05-22 09:15:23
我想在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函数的名称。


查看完整回答
反对 回复 2021-05-25
?
长风秋雁

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_)


查看完整回答
反对 回复 2021-05-25
?
摇曳的蔷薇

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是一个内置关键字,您不想覆盖它


查看完整回答
反对 回复 2021-05-25
  • 3 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号