Я пытаюсь использовать операторы if
для проверки наличия конкретной строки, которая также имеет одно имя файла. Тем не менее, я столкнулся с двумя строками, которые имеют общие символы, и я хотел бы строго не проверять дубликаты. Вот часть моего кода. У меня есть два файла с именем p_rgh_0
и h_0
.Строки, содержащие повторяющиеся символы для операторов if в Python
for path, dirs, files in os.walk(logsDir, topdown=False):
for lf in sorted(files):
if (plot_pressure or plot_all):
if any((filename in lf) for filename in ('p_0', 'p_rgh_0')):
logFile = os.path.join(path, lf)
data = np.loadtxt(logFile)
time, value = data[:,0], data[:,1]
(time, value, lf) = pressure(time, value, lf)
if (plot_enthalpy):
if any((filename in lf) for filename in ('h_0')):
print lf
logFile = os.path.join(path, lf)
data = np.loadtxt(logFile)
time, value = data[:,0], data[:,1]
(time, value, lf) = enthalpy(time, value, lf)
Теперь, поскольку h_0
общая строка, как файлы обрабатываются во втором if
заявление, где я проверяю исключительно только для h_0
. print lf
печатает оба файла, однако он должен быть только h_0
. Есть ли способ устранить это поведение и проверить только на h_0
?
Можете ли вы проверить, используя '==' вместо 'in', или действительно есть случаи, когда вам нужна подстрока имени файла для работы? – Eithos
Мне не нужна подстрока имени файла для работы. Например, 'p_rgh_0' и' h_0' совершенно разные. Я могу использовать '==', например, 'if lf == 'hf'', однако я могу увеличить список строк в будущем, так что у меня есть намного больше, начиная с' h', включая 'h_0'. – hypersonics