我有一个用 Python 编写的代码。它基于变量“i”生成两个文件。现在,我需要将这两个生成的文件之一与密钥文件进行比较,以获得正确的“i”值。
我正在使用 FOR 循环来测试 'i' 的一系列值,并使用 filecmp.cmp 将生成的文件之一与密钥文件进行比较。当我找到匹配项时,这意味着我有正确的“i”值。
下面是一段代码:
for i in range(100,0,-1):
....
with open("file1", "w") as p, open("file2", "w") as q:
# generate data based on the value of i and write it to the files
if(filecmp.cmp("file1", "keyfile"))
print "%d is the correct value of it" % i
break
应该这样工作:
- 测试 'i' 的值从 100 到 0 逐一递减 'i'。
- file1 和 file2 是使用基于“i”值的代码生成的。
- 现在,我将 file1 与密钥文件进行比较。如果它们具有相同的内容,我会找到正确的密钥并打破 FOR 循环。
我已将 filecmp.cmp 语句放在 if 语句中,因为如果两个文件相等,它会返回一个布尔值 True。但是,当我运行代码时,此行会引发错误。
另外,这是正确的做法吗?每次执行 FOR 循环,都会生成两个文件,file1 和 file2。With 语句将在循环后关闭这两个文件。但是在下一次循环运行中,这两个文件会被新内容覆盖吗?
谢谢。