python - 如何在Python中重置For计数器?

标签 python for-loop

这是我的代码:

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/

相关文章:

python - 在 python 中关闭流的不同方法

python - 无论元素顺序如何,获取列表中元组的数量

python - 在python中添加反转的前一个数字来实现回文

c - 在 for 循环中初始化双向链表会导致崩溃

java - 在 for 循环之前显示 toast 不起作用

c - 使用 for 循环将 char 数组传递到文件

python - 在 OpenCV 和 Python 中与多个源图像进行模板匹配

python - Django group by 查找计数

Python 字典没有更新

java - x[row].length,不明白