У меня есть в общей сложности 10 файлов (может быть больше в какой-то момент, но это будет фиксированное число).Python: чтение с нескольких файлов
Они небольшие - около 80 байт.
Читая от них все хорошо и работает - его медленно. Я предполагаю, потому что сценарий обрабатывает их один за другим и ждет ввода-вывода - поэтому я начал читать в Threading и Queue, но я не смог найти рабочее решение ...
Может ли кто-нибудь дать мне пример открытие нескольких файлов с резьбой?
код Я хотел бы поставить на несколько потоков:
try:
with open("/home/pi/sensoren/sensor1", "r") as sensor1, open("/home/pi/sensoren/sensor2", "r") as sensor2, open("/home/pi/sensoren/sensor3", "r") as sensor3, open("/home/pi/sensoren/sensor4", "r") as sensor4, open("/home/pi/sensoren/sensor5", "r") as sensor5, open("/home/pi/sensoren/sensor6", "r") as sensor6, open("/home/pi/sensoren/sensor7", "r") as sensor7, open("/home/pi/sensoren/sensor8", "r") as sensor8, open("/home/pi/sensoren/sensor9", "r") as sensor9, open("/home/pi/sensoren/sensor10", "r") as sensor10:
sensoren = [sensor1, sensor2, sensor3, sensor4, sensor5, sensor6, sensor7, sensor8, sensor9, sensor10]
temp = [ ]
#CRC checker
def checkCrc(line):
if "YES" in line:
return True
return False
#Temperatur Funktion
def getTemp(line):
temp = line.rstrip("\n")
temp = temp.split("t=")
temp = temp[1]
#den -62 error abfangen - sollte klappen
if temp == "-62":
temp = "00"
return str(temp)
#Temperaturen auslesen und zuweisen
for currentSensor in sensoren:
if checkCrc(currentSensor.readline()):
#CRC OK
temp.append(getTemp(currentSensor.readline()))
else:
#CRC ERROR
temp.append("00")
except IOError as e:
print("Fehler bei Dateioperationen: %s" % e.strerror)
Опубликовать код, который вы пробовали, указав, что не работает. Это сделает ваш вопрос более конструктивным. – favoretti
На каком устройстве хранятся файлы? –
Судя по пути, на [Малине PI] (http://www.raspberrypi.org/). У нас даже есть [Малиновая PI Stack Exchange] (http://raspberrypi.stackexchange.com) для этого! – Adam