def getcrc(lookfor,path):
abspath = basepath+path
for root, dirs, files in os.walk(abspath):
if lookfor in files:
#print "Found: %s" % join(root, lookfor)
filename = join(root,lookfor)
m = hashlib.md5()
for line in open(filename,'rb'):
m.update(line)
print "File",filename,"CRC is ",m.hexdigest()
return m.hexdigest()
我做了上面的脚本来获取一个文件的crc,当文件名完全匹配时,它可以正常工作,但是当大小写敏感度被违反时,我无法打开该文件,文件名是正确的,但是我想让这个代码不区分大小写。你知道吗
下面是我收到的错误:
Traceback (most recent call last):
File "C:\Users\darshanb\temp\de.ecw.python.QCsnapshot\src\XmlReaderTesting.py", line 80, in <module>
s3 = getcrc(filename,path)
File "C:\Users\darshanb\temp\de.ecw.python.QCsnapshot\src\Testing.py", line 51, in getcrc
for line in open(filename,'rb'):
UnboundLocalError: local variable 'filename' referenced before assignment
例如,我在XML中有一个文件名“Appointments\u ecw”_资源.xsl'我想找到CRC,但在实际服务器中名称较低'_资源.xsl有时是大写的do, 有没有一种方法可以让我忽略区分大小写的检查。你知道吗
通过使用
any()
和生成器表达式,可以无意识地匹配文件大小写:但是,仍然需要缩进
for
循环,使其位于if
语句中,因为如果查找的文件名不在那里,则仍然不需要读取文件:看起来您的
filename
变量是在前面的if
语句的内部作用域中定义的。在这个范围之外初始化它,或者将for
循环移到内部(取决于用途)。你知道吗相关问题 更多 >
编程相关推荐