Я пытаюсь сравнить определенные значения с временами разброса в CSV-файле. Ex: iam ищет первое значение в 27 байтов и сохраняет свое время. Затем второе значение 27 и время отличается от первого, а затем сохраняет свое время, затем третье и т. д. Проблема заключается в том, что я пытаюсь сэкономить время на переменную, чтобы сравнить ее со вторым значением, которое она мне дает:UnboundLocalError: локальная переменная 'T3', на которую ссылаются перед назначением "
UnboundLocalError: локальная переменная 'T3' Перед назначением "
import csv
import os
import glob
class dot(object):
Time=""
Payload=""
Timediff=""
global T1
global T2
global T3
global T4
def searchfunc():
path = '/Users/mohamedshaaban/Downloads/tes/Camera'
for infile in glob.glob(os.path.join(path, '*csv')):
with open(infile) as inf:
reader = csv.reader(inf)
partname = partsize = None
partname2 = partsize2 = None
partname3 = partsize3 = None
partname4 = partsize4 = None
partname5 = partsize5 = None
camera = dot()
camera.Payload1='30 bytes'
camera.Payload2='27 bytes'
camera.Payload3='17 bytes'
camera.Payload4='5 bytes'
camera.Payload5='6 bytes'
for row in reader:
if camera.Payload1 in row[2] and partname is None:
x = row[2]
partname = x[0:-1]
T1 = float(row[4])
if camera.Payload2 in row[2] and partname2 is None:
x2 = row[2]
partname2 = x2[0:-1]
T2 = float(row[4])
#print partname2
#print Time2
if camera.Payload2 in row[2] and partname3 is None:
if float(row[4]) != T2:
T3 = float(row[4])
x3 = row[2]
partname4 = x3[0:-1]
print partname3
if camera.Payload2 in row[2] and partname4 is None:
if float(row[4]) != T3:
T4 = float(row[4])
x4 = row[2]
partname4 = x4[0:-1]
print partname3
print Time5
searchfunc()
Это дает мне эту ошибку: NameError: глобальное имя «T3» не определено –
Вам по-прежнему необходимо определить их вне функции. См. Ответ Rushy Panchal выше. – tknickman