我正在编写一些代码来从2个分析器导入.csv文件,搜索文件头部的摘要数据(在10-50行之间变化)并提取更大的原始数据表。
虽然两个分析器输出的文件设置不同,但同样的原则适用 - 我在文件中搜索表格左上角的单元格,这是“时间”的标题。列,因为结构是标准的,我可以根据提取。我目前的代码是:
import csv
import pandas as pd
# open csv file
with open('data store/CPET_10s.csv', 'rU') as cortex_file:
# get file contents
data = csv.reader(cortex_file)
# identify start of data table
table_start = None
for line, row in enumerate(data): # PROBLEM HERE ON MAC, BUT WORKS ON WINDOWS
try:
first_column = row[0]
except IndexError:
continue
else:
if first_column.strip() == 't': #'t' header for time variable
if table_start is None:
table_start = line
此代码适用于我的Uni PC和MacBook上的1个分析器的文件。但是,对于第二个分析器 - 它可以在我的Uni PC上运行,但是我在MacBook上收到以下错误消息:
Traceback (most recent call last):
File "/Users/Braden/Dropbox/CPET_python/import_cortex.py", line 16, in <module>
for line, row in enumerate(data):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1783: ordinal not in range(128)
经过一番搜索,我明白问题看起来文件中有一个狡猾的字符。我搜索了.csv,发现了一行:
温度,, 23.3C,
我删除了它,尝试再次运行代码,仍然无法正常工作,无法找到任何其他无法正常呈现的字符。
所以,有两个问题: 1)可能导致此问题的原因是什么,它只是macOS中的问题,而不是Windows上的问题? 2)如何在mac上的.csv文件中读取代码?
如果有帮助,我已链接到.csv文件here