这是我的代码:
class badCmds:
def removeCmds(self):
fname = input("Enter bad command list filename")
badCmdList = open(fname, "r")
fname2 = input("Enter your script's filename")
myScript = open(fname2, "r")
commentedCmd = ""
for badCmd in badCmdList:
#myCmd = "#Script Generated by HP SSO Administrator";
for myCmd in myScript:
if badCmd in myCmd:
commentedCmd = "#"+myCmd
print(commentedCmd)
badCmds().removeCmds()
基本上,我有一个从某个程序中提取的脚本并将其放入另一个程序中。但是,将其放入第二个程序时会出现一个不允许的命令列表,因此我尝试编写这段小代码来注释掉(“#”)任何不允许的命令。我稍后会担心是否正确打印列表,现在我想要的只是散列的命令。
当我运行此代码时,它第一次命中第一个循环,旋转第二个循环,直到到达文件末尾,然后旋转第一个循环,减去第一个值,不再输入第二个循环环形。我不太明白 For 计数器在 Python 中是如何工作的; “badCmd”和“myCmd”是字符串还是整数?它们像字符串一样打印,但像整数一样计数。您可以看到我注释掉的行,其中我尝试通过为 myCmd 提供一个字符串值(该值恰好是第二个文件中的第一行)来重新启动第二个 For 循环上的计数器。显然不起作用。
感谢您的帮助。
最佳答案
myScript 是一个打开的文件 - 第一次运行后,文件指针位于文件末尾,并且以后的迭代没有其他可返回的内容。您可以使用 myScript.seek(0,0)
重置文件指针,但这是将整个文件读入列表的一个很好的用例。
class badCmds:
def removeCmds(self):
fname = input("Enter bad command list filename")
badCmdList = open(fname)
fname2 = input("Enter your script's filename")
myScript = open(fname2).readlines()
commentedCmd = ""
for badCmd in badCmdList:
#myCmd = "#Script Generated by HP SSO Administrator";
for myCmd in myScript:
if badCmd in myCmd:
commentedCmd = "#"+myCmd
print(commentedCmd)
关于python - 如何在Python中重置For计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26658566/