UnicodeDecodeError在mac上读取csv文件,但在Windows

时间:2017-09-20 22:55:57

标签: python-3.x pandas csv python-unicode

我正在编写一些代码来从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

0 个答案:

没有答案