|
0 / 0 / 0
Регистрация: 28.05.2023
Сообщений: 10
|
|
Разделение файла на части по одинаковому начальным символам строки29.05.2023, 19:09. Показов 2064. Ответов 14
Метки нет (Все метки)
Как с помощью Python разделить текст из файла на несколько файлов, количество строк всегда разное.
Но каждый файл начинается со строки /com,******* Например первый файл должен содержать содержать следующие строки /com,*********** Elements for Body 1 "Solid" *********** et,1,185 eblock,19,solid,,8 (19i9) 1 1 1 1 0 0 0 0 8 0 1 1 22 21 18 2 23 20 19 много однотипных строк 1 1 1 1 0 0 0 0 8 0 8 1 26 15 12 3 4 9 10 -1 Пример файла для скачивания prims.txt Исходный файл спрятан под спойлер. Кликните здесь для просмотра всего текста
/wb,elem,start ! set before creation of elements
/com,*********** Elements for Body 1 "Solid" *********** et,1,185 eblock,19,solid,,8 (19i9) 1 1 1 1 0 0 0 0 8 0 1 1 22 21 18 2 23 20 19 много однотипных строк 1 1 1 1 0 0 0 0 8 0 8 1 26 15 12 3 4 9 10 -1 !Material Id = {DB875B17-57A0-4B13-B6E0-20410295C180} /com,*********** Elements for Body 2 "Solid" *********** et,2,185 eblock,19,solid,,16 (19i9) 2 2 2 2 0 0 0 0 8 0 84 488 517 535 535 516 516 516 516 много однотипных строк 2 2 2 2 0 0 0 0 8 0 99 490 524 522 522 537 537 537 537 -1 !Material Id = {33823369-8A08-4DE9-B856-28F7085CB391} et,3,185 eblock,19,solid,,40 (19i9) 2 3 2 2 0 0 0 0 8 0 100 509 517 519 518 512 535 533 523 много однотипных строк 2 3 2 2 0 0 0 0 8 0 139 492 525 524 495 487 487 487 487 -1 !Material Id = {33823369-8A08-4DE9-B856-28F7085CB391} /com,*********** Elements for Body 4 "Solid" *********** et,4,186 keyo,4,2,1 ! set full integration on SOLID186 eblock,19,solid,,75 (19i9) 4 4 4 4 0 0 0 0 20 0 9 28 30 60 58 84 83 68 69 161 173 284 162 344 312 310 314 164 174 292 285 много однотипных строк 4 4 4 4 0 0 0 0 20 0 83 57 59 118 119 99 100 116 117 279 289 417 282 382 386 414 384 281 288 415 416 -1 !Material Id = {69B4A249-CB7D-484E-9A62-1F6A53C4F80C} /wb,elem,end ! done creating elements
0
|
|
| 29.05.2023, 19:09 | |
|
Ответы с готовыми решениями:
14
Выделение слова из строки по начальным и конечным символам
|
|
0 / 0 / 0
Регистрация: 28.05.2023
Сообщений: 10
|
|
| 29.05.2023, 20:15 [ТС] | |
|
В том примере я расписал криво. Мне предложили считать n строчек. Но у меня каждый раз разное количество строк.
Предыдущая задача была мной решена так как начало и конец строк всех "nd" и всех строк "el" всегда одинаковое. Поэтому вопрос отделения строк "nd" от строк "el" отпал. Теперь весь файл "el" требуется разделить на отдельные файлы, в каждом из которых элементы принадлежат одному телу. Но не могу разобраться как разделить файл по началу строки. PS: далее будет перестановка номеров в каждой строке в зависимости от типа элемента указанного в строке (et,1,185). Требуется для конвертора сетки мкэ из ansys в зенит. Спасибо.
0
|
|
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
|
||||||||
| 29.05.2023, 21:56 | ||||||||
|
Смотрите, если например, строка, предназначенная для разделения на файлы:
0
|
||||||||
|
0 / 0 / 0
Регистрация: 28.05.2023
Сообщений: 10
|
|
| 30.05.2023, 06:17 [ТС] | |
|
В каждый файл должны попадать строки от строки начинающейся с
/com,******* до строки в которой содержится -1 Из приложенного мной файла "prims.txt" должно получится четыре файла.
0
|
|
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
|
||
| 30.05.2023, 08:05 | ||
|
В приложенном Вами файле, всего три строки, начинающиеся с /com,*******, поэтому встречный вопрос:По каким критериям там может получиться 4 файла?
0
|
||
|
0 / 0 / 0
Регистрация: 28.05.2023
Сообщений: 10
|
||||||
| 30.05.2023, 22:06 [ТС] | ||||||
|
Добрый вечер. Да там действительно будет только 3 строки.
1) Прикрепил файл, который нужно обработать (ImportANSYS.inp) и файл на Python (ANStoZEN_v0.py). Оба файла в находятся в ZIP архиве (anstozen.zip), который приложен к сообщению. anstozen.zip 2) Результатом будет набор файлов (eli) в которых будет в зависимости от типа элемента (прописанного во второй строке файла) будут указаны в определенной последовательности узлы, входящие в каждый элемент. Например для файла elout2.txt вторая строка содержит "et,2,185", следовательно данный набор нужно превратить в следующий 1 22 21 18 2 23 20 19 1 1 1 1 0 1 (первые 8 цифр номера узлов, постоянные 1 1 1 1 0 и номер элемента) 1 18 21 22 3 8 7 6 1 1 1 1 0 2 и еще 6 строчек. Эти 8 строк записать в файл с названием "Body 2". Слова Body 2 находятся в первой строчке файла elout2.txt. 3) Пока не понимаю как по первой строке определить название будущего файла и как по второй строке определить как обрабатывать следующие строки в файле. Спасибо. Также в сплойлере скрыт код на Python Кликните здесь для просмотра всего текста
0
|
||||||
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
|
|||
| 30.05.2023, 23:02 | |||
|
Давайте так... 1. Приложите реальный исходный файл, предварительно разбейте его вручную на такие файлы, которые необходимо получить в итоге и их тоже приложите в архиве с исходным файлом. 2. Уточните: промежуточные файлы нужны только в целях дальнейшего разделения на другие файлы или для каких-то иных целей? 3. Если возможно, попытайтесь таки объяснить по каким критериям производилось разделение на файлы. 4. Уточните, возможны ли другие по внутренней структуре исходные файлы, предназначенные для разделения... если возможны, то их тоже желательно вложить в архив и разделить так, как требуется.
0
|
|||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 31.05.2023, 09:39 | |
|
YuS_2, похоже, это XY
0
|
|
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
|
|
| 31.05.2023, 14:54 | |
|
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 31.05.2023, 15:33 | |
|
YuS_2, XY Problem
Добавлено через 1 минуту хабр
Пользователь хочет сделать X.
Пользователь не знает, как сделать X, но считает, что сможет нащупать путь к решению, если ему удастся сделать Y. Пользователь не знает, как сделать и Y. Пользователь начинает просить помощи с Y. Люди пытаются помочь пользователю с Y, но Y кажется странной для решения проблемой. Пользователю нужна помощь с X, а Y даже не является приемлемым решением X.
0
|
|
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
|
|
| 31.05.2023, 17:08 | |
|
iSmokeJC, а, ну да, очень похоже... потому и уточняю у ТС раз за разом, т.к. задачи в целом пока не видно...
0
|
|
|
0 / 0 / 0
Регистрация: 28.05.2023
Сообщений: 10
|
|
| 31.05.2023, 19:02 [ТС] | |
|
Преобразование геометрии (сетки элементов) из одной программы в другую.
Вроде как разобрался. Но все не успел написать. Прикладываю исходный файл и конечные файлы, которые нужно получить (смотрите вложение). Я допишу конца программу - выложу - посмотрите где косяки, где можно лучше сделать. Прошу не пинать, учусь на ходу... Спасибо.
0
|
|
|
Любознательный
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
|
||||||||
| 01.06.2023, 11:51 | ||||||||
1
|
||||||||
|
0 / 0 / 0
Регистрация: 28.05.2023
Сообщений: 10
|
|
| 01.06.2023, 20:47 [ТС] | |
|
Спасибо. Вы мне помогли с основой. Все получилось.
0
|
|
| 01.06.2023, 20:47 | |
|
Помогаю со студенческими работами здесь
15
Разделение файла на части
Разделение строки с именем на части Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|