отредактировано на основе ответа @Boendal.
Я работал над сценарием, и когда я думал, что все работает отлично, получается, что нет, и я не могу найти Решение или даже выяснить, почему мой лог c не работает. Я довольно новичок в python, так что извините, если это тривиально, но я бы хотел, чтобы это сработало. Вот проблема: у меня есть текстовый файл, созданный другим сценарием, который содержит строки с комбинациями чисел, например:
(1800, 2100, 2600, 1500, 900, 3700)
(1800, 2100, 2600, 900, 800, 3700)
(1800, 2100, 1500, 900, 800, 3700)
(1800, 2600, 1500, 900, 800, 3700)
(1800, 2100, 2600, 1500, 900, 3700)
(1800, 2100, 2600, 900, 800, 3700)
(1800, 2100, 1500, 900, 800, 3700)
(1800, 2100, 2600, 1500, 900, 3700)
(1800, 2100, 2600, 900, 800, 3700)
(1800, 2600, 1500, 900, 800, 3700)
(1800, 2100, 2600, 1500, 900, 3700)
(1800, 2100, 1500, 900, 800, 3700)
(1800, 2600, 1500, 900, 800, 3700)
и в другом сценарии, который использует этот файл в качестве ввода, который я хочу go построчно работайте над каждой строкой и переходите к другой. Я думал об удалении строки после того, как закончил (так что я всегда работаю над одной и той же строкой), но это кажется еще более сложным, поэтому я решил просто использовать a для l oop. Вот код:
(...)
for i, line in enumerate(lines):
i=i+1
line_number = literal_eval(line)
if "1800" in line_number:
cell1800_a = sheet.cell(row=i,column=27)
cell1800_a.value = number
cell1800_b = sheet.cell(row=i,column=29)
cell1800_b.value = number
stf_18 = sheet.cell(row=i,column=50)
stf_18.value = "radio7"
stf18Q = sheet.cell(row=i,column=51)
if number in range (1,2):
stf18Q.value = 1
elif number in range (3,4):
stf18Q.value = 2
elif number in range (5,6):
stf18Q.value = 3
if question1 == "y":
cell1800_2g = sheet.cell(row=i,column=26)
cell1800_2g.value = number
if "2100" in line_number:
cell2100_a = sheet.cell(row=i,column=25)
cell2100_a.value = number
stf18 = sheet.cell(row=i,column=52)
stf18.value = "radio7"
stf18Q = sheet.cell(row=i,column=53)
if number in range (1,2):
stf18Q.value = 1
elif number in range (3,4):
stf18Q.value = 2
elif number in range (5,6):
stf18Q.value = 3
if question2 == "y":
cell2100_b = sheet.cell(row=i,column=24)
cell2100_b.value = number
if "2600" in line_number:
cell2600 = sheet.cell(row=i,column=30)
cell2600.value = number
stf26 = sheet.cell(row=i,column=54)
stf26.value = "radio6"
stf26Q = sheet.cell(row=i,column=55)
if number in range (1,2):
stf26Q.value = 1
elif number in range (3,4):
stf26Q.value = 2
elif number in range (5,6):
stf26Q.value = 3
if "1500" in line_number:
cell1500 = sheet.cell(row=i,column=34)
cell1500.value = number
stf15 = sheet.cell(row=i,column=48)
stf15.value = "radio5"
stf15Q = sheet.cell(row=i,column=49)
stf15Q.value = number
if "900 "in line_number:
if question1 == "y":
cell900_A = sheet.cell(row=i,column=31)
cell900_A.value = number
stf9 = sheet.cell(row=i,column=46)
stf9.value = "radio4"
stf9Q = sheet.cell(row=i,column=47)
stf9Q.value = number
if question2 == "y":
cell900_B = sheet.cell(row=i,column=32)
cell900_B.value = number
stf9 = sheet.cell(row=i,column=46)
stf9.value = "radio3"
stf9Q = sheet.cell(row=i,column=47)
stf9Q.value = number
if "800" in line_number:
cell800 = sheet.cell(row=i,column=33)
cell800.value = number
stf8 = sheet.cell(row=i,column=44)
stf8.value = "radio2"
stf8Q = sheet.cell(row=i,column=45)
stf8.value = number
if "3700" in line_number:
cell3700 = sheet.cell(row=i,column=40)
cell3700.value = number
stfa = sheet.cell(row=i,column=87)
stfa.value = "radio1"
stfaq = sheet.cell(row=i,column=88)
stfaq.value = number
(...)
в основном то, что мне нужно сделать - это открыть файл, прочитать одну строку и проверить, какие числа в нем содержатся, и содержит ли оно конкретное c число. значение в ячейке Excel и перейти к следующей строке. Все работает, кроме циклического перебора строк ... Код читает только одну строку и помещает одинаковые значения во все ячейки, даже если каждая строка содержит различную комбинацию чисел.
Я был бы очень признателен, если бы Вы можете помочь мне решить это, потому что я смотрю на это уже несколько часов, и я действительно не вижу этого (и я почти уверен, что это простая логика c ошибка)