Я использую многопоточность и она работает нормально. В первом потоке, как упомянуто в коде, мне нужно, чтобы мой файл csv был сохранен с именем файла как Logger1 в первый раз, и после того, как этот файл logger1 пересек 1000 строк, он должен бытьпреобразуется в zip-файл и удаляется, в то время как значение i увеличивается на 1. Теперь после этого дальнейшие данные должны быть сохранены в файле csv с именем файла в качестве logger2.
Если переменной 'i' присвоено значение в пути, как показано в коде, то появляется несвязанная локальная ошибка, указывающая на переменную i, на которую ссылаются перед присвоением.Если в начале я объявлю его как глобальный i вместо просто i = 1, появится та же ошибка.Если я присвоил значение внутри u1thread, это значение никогда не будет увеличено, потому что каждый раз, когда выполняется поток, я устанавливается равным 1.
i=1
class u1Thread(threading.Thread):
def run(self):
while True:
export_csv = x.to_csv (r'/home/pi/Logger' + str(i)
+ '.csv', index = None, mode='a',
header=False)
input_file = open("Logger" + str(i) + ".csv","r+")
reader_file = csv.reader(input_file)
l = len(list(reader_file))
if (l > 1000) :
jungle_zip = zipfile.ZipFile('Logger' + str(i) +
'.zip', 'w')
jungle_zip.write('Logger' + str(i) + '.csv',
compress_type=zipfile.ZIP_DEFLATED)
jungle_zip.close()
os.remove("Logger" + str(i) + ".csv")
i +=1
class vfThread(threading.Thread):
def run(self):
while True:
ret, frame=video.read()