Форум сайта python.su
0
Всем привет
Есть строчка
;|Input=1;180;3;234;21;4;N;;-1;1;;;|LArtBez=10;55;3;63;20;17;N;Artikel;-1;1;;;|LTeNam=10;80;3;63;20;9;N; Te;-1;1;;;|LTeNamTrg=10;130;3;63;20;13;N;Trдger;-1;1;;;|LTeNamUbo=10;105;3;63;20;11;N; Ubo;-1;1;;;|LTePosNr=10;80;183;9;20;15;N;;-1;1;;;|LTePosNrUbo=10;105;183;9;20;19;N;;-1;1;;;|LZiel=10;205;3;54;20;7;N; Ziel:;-1;1;;;|Label=10;155;3;234;20;3;N;TE-Eingabe:;-1;1;;;|MDT=10|MaskCmd=MaskDef|MaskFocus
MaskName=MdtInputTe|MdtMbx=TskMdt1|SubTitle=10;20;0;240;20;6;N;;-4926931;1;;;|TeNam=10;80;75;108;20;10;N;;-1;1;;;|TeNamTrg=10;130;75;162;20;14;N;;-1;1;;;|TeNamUbo=10;105;75;108;20;12;N;;-1;1;;;|TePosNr=10;80;192;45;20;16;N;;-1;1;;;|TePosNrUbo=10;105;192;45;20;20;N;;-1;1;;;|Title=10;0;0;240;20;2;N;TE Bestдtigen;-4926931;1;;;|Ziel=10;205;66;171;20;8;N;;-1;1;;;|
Хочу найти TeNam=10 регулярным выражением
Подскажите, пожалуйста, как это сделать
Какая маска должна быть?
Спасибо!
Офлайн
0
У меня таких строчек много
Вот код, который я стараюсь адаптировать
i
mport os import sys import re def find_max_value(fname): value = 0 with open(fname, encoding='cp866') as fn: try: for i in fn: if v ='TeNam=10': print(value, fname) except IndexError: pass return {value: fname} def main(): dirname = ('G:\1\MdtProt') os.chdir(dirname) res = {} for i in os.listdir(dirname): res.update(find_max_value(i)) print('Filename is: ', res.get(max(res))) if __name__ == "__main__": main()
Офлайн
294
Antonpythonон вообще не должен работать потому что :
Вот код, который я стараюсь адаптировать
if v ='TeNam=10':
Antonpythonне пому зачем вам регулярка? если нужно только проверить наличие в строке ‘TeNam=10’ то делаете просто
Хочу найти TeNam=10 регулярным выражением
if 'TeNam=10' in string:
... with open(fname, encoding='cp866') as fn: for st in fn: if 'TeNam=10' in st: print(value, fname) ....
[code python][/code]
Отредактировано PEHDOM (Янв. 9, 2019 13:28:05)
Офлайн
0
не знаю, кидает ошибки
У меня 5 файлов в одном из них TeNam
import os import sys def find_max_value(fname): value = 0 with open(fname, encoding='cp866') as fn: try: for i in fn: if 'TeNam' in i: print(fname) except IndexError: pass return {fname} def main(): dirname = ('G:\1\MdtProt') # os.chdir(dirname) # res = {} # for i in os.listdir(dirname): # res.update(find_max_value(i)) # print('Filename is: ') if __name__ == "__main__": main()
Офлайн
294
Antonpythonкакие именно?
не знаю, кидает ошибки
[code python][/code]
Офлайн
0
Каюсь, это были ошибки в прошлой версии
Этот код вовсе ничего не выводит
C:\Users\lavraschuk\PycharmProjects\FindName\venv\Scripts\python.exe C
Users/lavraschuk/PycharmProjects/FindName/venv/Scripts/FindName.py
Process finished with exit code 0
Не уверен, что if ‘TeNam’ in i: здесь помогает
Отредактировано Antonpython (Янв. 9, 2019 13:57:33)
Офлайн
294
Antonpythonуверен что помогает, только вот у вас кусок закоментирован
Не уверен, что if ‘TeNam’ in i: здесь помогает
# os.chdir(dirname) # res = {} # for i in os.listdir(dirname): # res.update(find_max_value(i)) # print('Filename is: ')
[code python][/code]
Офлайн
0
Не знаю, выкладываю то, что есть
import os import sys def find_value(fname): value = 0 with open(fname, encoding='cp866') as fn: try: for i in fn: if 'TeNam' in i: print(fname) except IndexError: pass return {fname} def main(): dirname = ('H:\\1\\3') os.chdir(dirname) res = {} for i in os.listdir(dirname): res.update(find_value(i)) print('Filename is: ') if __name__ == "__main__": main()
Users/Anton/PycharmProjects/Работа с файловой системой/Перебор файлов из папки.py”
Users/Anton/PycharmProjects/Работа с файловой системой/Перебор файлов из папки.py”, line 21, in <module>
Users/Anton/PycharmProjects/Работа с файловой системой/Перебор файлов из папки.py”, line 18, in mainОфлайн
294
Antonpythonа какое отношение ваша ошибка имеет к поиску подстроки в строке? оно же вам ругается на ваше
Не знаю, выкладываю то, что есть
[code python][/code]
Отредактировано PEHDOM (Янв. 10, 2019 09:43:16)
Офлайн