Извлечь данные из текстового файла в Python и записать в новый файл
У меня есть файл, подобный приведенному ниже, и я ищу способ прочитать все значения и записать их в новый файл с помощью Python.
Contact Angle (deg) 87.98 Wetting Tension (dy/cm) 2.576 Wetting Tension Left (dy/cm) 39.44 Wetting Tension Right (dy/cm) 39.44 Base Tilt Angle (deg) 0.00 Base (mm) 1.2414 Base Area (mm2) 1.2103 Height (mm) 0.5992 Tip Width (mm) 0.9480 Wetted Tip Width (mm) 0.9323 Sessile Volume (ul) 0.4752 Sessile Surface Area (mm2) 2.3382 Contrast (cts) 179 Sharpness (cts) 82 Black Peak (cts) 12 White Peak (cts) 191 Edge Threshold (cts) 86 Base Left X (mm) 3.592 Base Right X (mm) 4.835 Base Y (mm) 3.083 RMS Fit Error (mm) 4.248E-3
Расстояние между заголовком (например, контактным углом (град)) и значением представляет собой смесь вкладок и пробелов. Я ищу способ получить выходной файл в следующем формате:
87.98 2.576 39.44 39.44 0 1.2414 1.2103 0.5992 0.948 0.9323 0.4752 2.3382 179 82 12 191 86 3.592 4.835 3.083 4.25E-03
Прошло некоторое время, так как я использовал Python и даже рассматривал подобные проблемы, я ударил стену и, похоже, не нашел ответа (который, как я знаю, тривиален).
Может кто-нибудь мне помочь?
- петля кода и окончания цикла, нажав 0
- Подготовка пакетов для Pypi для разных версий python
- Weird TypeError от json.dumps
- Декартово произведение для двух словарей python
- Оптимизация Python: выбор между словарем или списком списка
Я тестировал это на выборочных данных в вопросе, и он работает.
infile = open('file.txt', 'r') outfile = open('outfile.txt', 'w') for l in infile: outfile.write(l.split()[-1] + '\n') infile.close() outfile.close()
Это работает:
# with block auto closes the files after the statements in it execute. It's good practice with open(yourFile) as f, open(newFile, 'w') as f2: for line in f: line_out = line.split()[-1].strip() f2.write(line_out + '\n')
answer = map(lambda a: a.strip().split()[-1], infile.readlines())
Одна линия! Ну, не совсем одна строка. В приведенной выше строке предполагается, что вы открыли infile
используя infile = open("in.txt")
. И тогда вам придется записать его в out = open("out.txt", "w"); out.writelines(answer)
файл, что-то вроде out = open("out.txt", "w"); out.writelines(answer)
out = open("out.txt", "w"); out.writelines(answer)
Детали:
-
a.strip().split()[-1]
разделяет каждую строку пробелами (вкладки / пробелы и т. д.) и принимает последний элемент (число) из каждой строки -
map(lambda...
part применяет это к каждой отдельной строке файла
- ошибка сопоставления опций с cfn-pyplates
- Как я могу отсортировать список кортежей одним из его значений, а затем другим?
- Может ли Pickle обрабатывать файлы, большие, чем оперативная память, установленная на моей машине?
- Невозможная ошибка в программе, которая выравнивает богатство в группе (UVA 10137, «The Trip»)
- не удалось полностью загрузить пакет nltk в python. останавливается на omw
- Эффективно редактируйте строки и конвертируйте их в поплавки в Pandas
- заменяя «новый» модуль
- Подпроцесс python метод () медленный
- Могу ли я использовать пользовательские объекты python в VBA?