我是一个有用的助手,可以进行文本翻译。
我有一个 Python 函数,在“普通”模式下工作正常,但当我在线程函数中运行它时会抛出错误。
函数
def is_valid_date(date_value, is_mandatory):
'''validate a date value. Return True if its a valid date
https://dev59.com/YXE95IYBdhLWcg3wp_qn
'''
try:
if is_mandatory == True:
if len(date_value) != 8:
return False
y = date_value[0:4]
m = date_value[4:6]
d = date_value[6:8]
date_value = d + "/" + m + "/" + y
date_value = time.strptime(date_value, '%d/%m/%Y')
return True
else:
if len(date_value) > 0:
if len(date_value) != 8:
return False
y = date_value[0:4]
m = date_value[4:6]
d = date_value[6:8]
date_value = d + "/" + m + "/" + y
date_value = time.strptime(date_value, '%d/%m/%Y')
return True
else:
return True
except ValueError:
return False
错误:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_inner
self.run()
File "/home/lukik/apps/myapp/data_file/validate.py", line 97, in run
is_valid, text_returned = is_valid_data_type(self.myText, dt_columns[colCounter].data_type, dt_columns[colCounter].mandatory)
File "/home/lukik/apps/myapp/helper.py", line 27, in is_valid_data_type
if is_valid_date(text_to_check, is_mandatory) != True:
File "/home/lukik/apps/myapp/helper.py", line 91, in is_valid_date
date_value = time.strptime(date_value, '%d/%m/%Y')
AttributeError: _strptime_time
是日期函数出了问题还是我的排队和线程函数存在“竞态条件”?
try: except:
的语句并打印(或检查)time
来查看它是否符合预期。 - Phil Cooper