我正在计算文件“Index40”中的行数。共有11436行。我把这个数字作为字符串保存在一个txt文件中。我要我的代码做的是计算这个文件中每晚的行数,如果等于作为单个字符串值存储的行数,我希望脚本结束,否则重写文本文件中的行数并继续脚本。我遇到的问题是脚本总是认为行数不等于txt值。代码如下:
lyrfile = r"C:\Hubble\Cimage_Project\MapData.gdb\Index40"
result = int(arcpy.GetCount_management(lyrfile).getOutput(0))
textResult = str(result)
with open(r'C:\Hubble\Cimage_Project\Index40Count.txt', 'r+') as a:
if a == textResult:
pass
else:
a.write(textResult)
#then do a bunch more code
print "not passing"
最佳答案
似乎您正在比较文件对象textResult
和a
。
如果需要文件的内容,则需要从file对象中读取,例如a.read()
以将文件的全部内容作为字符串获取。
所以我想你在找这样的东西:
with open(r'C:\Hubble\Cimage_Project\Index40Count.txt', 'r+') as a:
contents = a.read() # read the entire file
if contents != textResult:
a.seek( 0 ) # seek back to the beginning of the file
a.truncate() # truncate in case the old value was longer than the new value
a.write(textResult)
#then do a bunch more code
print "not passing"