2017-08-07 54 views
0

我試着在ubuntu終端中運行下面的程序,但是出現了一些錯誤。但它不是在jupyter筆記本提供任何錯誤在python中讀取csv文件時出錯

文件「imsl.py」,第5行 語法錯誤:非ASCII字符「\ XE2」在第5行,但沒有聲明編碼文件imsl.py;見http://python.org/dev/peps/pep-0263/的細節

import numpy 
import matplotlib.pyplot 


data_file ​= open("mnist_train_100.csv",'r') 
data_list ​= ​data_file.readlines() 
data_file.close() 
+3

這不是你得到錯誤的代碼,正確嗎? – thebjorn

回答

2

你已經有了一個流浪字節左右浮動。您可以通過運行找到它

with open("imsl.py") as fp: 
    for i, line in enumerate(fp): 
     if "\xe2" in line: 
      print i, repr(line) 

您會看到行號和有問題的行。然後可以刪除該行並重新創建它以刪除該雜散字節。

您還可以將# -*- coding: utf-8 -*-添加到文件的頂部,以按照您的鏈接強制執行編碼。

0

嘗試使用內置的csv庫:

import csv 

data_file = list(csv.reader(open('mnist_train_100.csv'))) 
+0

內置csv庫只能處理ASCII,如果您需要unicode CSV閱讀器,則可以嘗試https://pypi.python.org/pypi/unicodecsv/0.9.0。 – droravr

0

你必須在地方?是在此代碼流浪Unicode字節:

import numpy 
import matplotlib.pyplot 


data_file ?= open("mnist_train_100.csv",'r') 
data_list ?= ?data_file.readlines() 
data_file.close() 

糾正它,你是好去。