Скрипт Python, извлекающий определенные строки из каталога, содержащего несколько текстовых файловPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Скрипт Python, извлекающий определенные строки из каталога, содержащего несколько текстовых файлов

Сообщение Anonymous »


Я новичок в Python, создал этот скрипт Python через Chat GPT и просматриваю несколько вопросов на этом сайте. Он работает с файлами, которые у меня есть, но он очень жестко запрограммирован для этих конкретных текстовых файлов. Как я могу сделать его менее жестко закодированным, чтобы он искал и находил нужные строки?

Вот мой код, а ниже — образец файлов .txt, которые он обрабатывает.

импортировать ОС Защиту Extract_lines (входной_файл, выходной_файл): с open(input_file, 'r') как файл: # Читает последнее имя файла linea = [строка для строки в файле, если line.startswith('lasinfo')] линия = ул (линия) линия = линия[31:-5] если len(linea) == 0: linea ='Имя файла не определено!' с open(input_file, 'r') как файлом: # Считывает последние данные lineb = [строка для строки в файле, если line.startswith('PROJCS')] строкаb = ул(строкаb) линияб = линияб[14:41] если len(lineb) == 0: lineb ='ДАТУМ не определен!' с open(input_file, 'r') как файл: # Считывает данные о плотности лазерных точек linec = [строка для строки в файле, если line.startswith('плотность точек')] строка = ул (линия) строка = строка[2:-4] lined = linec[27:31] # удаляет значение плотности (точек/м) из оператора если len(linec) == 0: linec ='Плотность точек не указана' lineout = linea + "," + lineb + ​​"," + linec + "," + lined + '\n' с open(output_file, 'a') в качестве вывода: вывод.write(линейный выход) defprocess_txt_files(directory_path, выходной_файл): # Сканирует каталог на наличие файлов .txt для обработки с открытым (выходной_файл, 'w'): проходить для имени файла в os.listdir(directory_path): если имя_файла.endswith(".txt"): путь_файла = os.path.join(путь_каталога, имя файла) Extract_lines (путь_к файлу, выходной_файл) путь_каталога = 'C:/Users/rinicholls/Richard/Gnarabup_LiDAR/LiDAR/Gnarabup_South_AVWS/reports' выходной_файл = 'density.txt' process_txt_files(путь_к_каталогу, выходной_файл) Текстовый файл:
Отчет lasinfo (231025) для 'Gnarabup_South_sph_e310n6230_1AVWS.las' отчет обо всех записях заголовка LAS: подпись файла: 'LASF' идентификатор источника файла: 0 глобальное_кодирование: 1 Идентификатор проекта, данные GUID 1–4: 00000000-0000-0000-0000-000000000000 версия major.minor: 1.4 системный идентификатор: «LAStools (c) от Rapidlasso GmbH» программное обеспечение для создания: 'lasheight (210418) коммерческое' день/год создания файла: 278/2023 размер заголовка: 375 смещение к данным точки: 375 число вар. длина записей: 0 формат данных точки: 6 длина записи данных точки: 30 количество записей точек: 0 количество баллов по возврату: 0 0 0 0 0 масштабный коэффициент x y z: 0,01 0,01 0,01 смещение x y z: 0 0 0 мин x y z: 311439,81 6230000,08 -38,91 макс x y z: 311999,99 6231999,80 -33,17 начало записи пакета данных формы сигнала: 0 начало первой расширенной записи переменной длины: 0 количество записей длины расширенной_переменной: 0 расширенное количество очковых записей: 7586 расширенное количество баллов при возврате: 7586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 отчетный минимум и максимум для всех записей точек LAS... Х 31143981 31199999 Y 623000008 623199980 З-3891-3317 интенсивность 0 0 return_number 1 1 число_возвратов 1 1 Edge_of_flight_line 0 1 scan_direction_flag 0 1 классификация 13 13 scan_angle_rank -11 18 пользовательские_данные 1 1 point_source_ID 174 177 gps_time 363998052.416096 363998902.558917 расширенный_возвращаемый_номер 1 1 расширенное_номер_возвратов 1 1 расширенная_классификация 13 13 Extended_scan_angle -1820 2924 расширенный_канал_сканера 0 0 количество первых возвратов: 7586 количество промежуточных возвратов: 0 количество последних возвратов: 7586 количество одиночных возвратов: 7586 крытая площадь в квадратных единицах/килоунитах: 30136/0,03 плотность точек: все возвраты 0,25, последние только 0,25 (на квадратную единицу) интервал: все возвраты 1,99 длятся только 1,99 (в единицах) обзор расширенного количества возвратов данного импульса: 7586 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 гистограмма классификации точек: 7586 проволочная решетка (13)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»