Я пытаюсь прочитать только метаданные моих файлов TDMS, но мой код читает весь файл. У кого-нибудь есть опыт в этом? Спасибо.
Это мой текущий код:
import numpy as np
from nptdms import TdmsFile as td
with td.open('c:\data\AM\Desktop\X\file1.tdms') as tdms_file:
print(tdms_file)
td('c:\data\AM\Desktop\X\file1.tdms').as_dataframe().to_excel('c:\data\AM\Desktop\X\file1.xlsx')
1 ответ
Как объясняется в документации, вы можете читать метаданные напрямую, используя nptdms .TdmsFile.read_metadata
import numpy as np
from nptdms import TdmsFile as td
metadata = td.read_metadata(tdms_file_path)
print(metadata.properties)
Пример использования файла tdms из unittests библиотеки nptdms:
https://github.com/adamreeve/npTDMS/blob/master/nptdms/test/data/Digital_Input.tdms
In [2]: from nptdms import TdmsFile as td
In [3]: tdms_file_path = "../../Digital_Input.tdms"
In [4]: metadata = td.read_metadata(tdms_file_path)
In [5]: metadata.properties
Out[5]:
OrderedDict([('name', 'Digital_Input'),
('format-string', ''),
('iteration-based-timing', False),
('unit_string', ''),
('unit-GUID', '{9F75F685-3F5A-4657-8B49-BA907C49DA69}'),
('X-unit-string', 's'),
('X-unit-GUID', '{0748B676-82D4-4318-A843-708972E53760}'),
('unit-version', 0),
('Title', '07/09/2012 06:58:23 PM'),
('Prefix', '07/09/2012 06:58:23 PM'),
('Author', 'SV-LAB-DESKTOP#1'),
('Description', ''),
('log-datatype', 'Time-DWDT'),
('FileFormatVersion', '2.1'),
('WriterVersion', '5.0'),
('WriterName', 'LabVIEW SignalExpress 2011'),
('DateTime', numpy.datetime64('2012-07-09T23:58:24.000000')),
('TimeZone', 'Central Daylight Time'),
('timing-mode', 'HWTimed_Continuous'),
('DataFormat', 'SingleWaveform'),
('IntervalCount', 1),
('data-ready-for-viewing', True),
('log-duration', 10.0),
('log-dt', 0.0005),
('log-iteration-length', 1.0),
('recording-complete', True),
('samples prepared for viewing', 20000)])
Дополнительный вопрос : как сохранить метаданные в Excel?
import pandas as pd
df = pd.DataFrame(metadata.properties.items(), columns=["property", "value"])
df.to_excel(output_excel_file_path)
Если вы хотите, чтобы имена свойств были столбцами в Excel, вы можете сохранить результаты следующим образом:
import pandas as pd
df = pd.DataFrame([metadata.properties.values()], columns=metadata.properties.keys())
df.to_excel(output_excel_file_path)
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.