【发布时间】:2013-08-06 22:14:29
【问题描述】:
我正在用 pyQT4 和 numpy 开发一个多平台应用程序,实际上它在我的 linux 系统(Xubuntu 12.04)上不起作用,即使它在 Windows 7 上看起来效果很好。所以,问题来自我的导入文件方法(它在 PyQT4 类中):
def import_folder(self,abs_path,folder_list):
for folder_i in folder_list:
filenames = glob.glob("%s/%s/*.txt" %( abs_path,folder_i ))
aa =list(filenames)[1]
print filenames
data_fichier = np.genfromtxt("%s" %(aa),delimiter=';',skip_header=35,usecols=[8])
data_fichier2 = np.zeros((data_fichier.shape[0],))
这是我得到的错误:
data_fichier = np.genfromtxt("%s" %aa,delimiter=';',skip_header=35,usecols=[8])
File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1241, in genfromtxt
fhd = iter(np.lib._datasource.open(fname, 'rbU'))
File "/usr/lib/python2.7/dist-packages/numpy/lib/_datasource.py", line 145, in open
return ds.open(path, mode)
File "/usr/lib/python2.7/dist-packages/numpy/lib/_datasource.py", line 472, in open
found = self._findfile(path)
File "/usr/lib/python2.7/dist-packages/numpy/lib/_datasource.py", line 315, in _findfile
filelist += self._possible_names(self.abspath(path))
File "/usr/lib/python2.7/dist-packages/numpy/lib/_datasource.py", line 364, in abspath
splitpath = path.split(self._destpath, 2)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 14: ordinal not in range(128)
我已经打印了我的“文件名”变量:
[u'/home/*****/Documents/Plate_test/Track-Arousal_experiment_24_06_13_track_1-Trial 2-7-Subject 1.txt', u'/home/*****/Documents/Plate_test/Track-Arousal_experiment_24_06_13_track_1-Trial 2-5-Subject 1.txt']
因此,问题来自 unicode 模式(列表元素开头的“u”)。而且我完全不知道为什么我的 linux 系统会使用这种 unicode 模式。你有什么想法我可以如何删除它并以“常规”模式打开(对不起术语,我不是专家)? (或其他关于我的问题的想法)。
(只是为了你知道,当我将该方法作为一个没有 PyQT 的简单函数启动时 类,效果很好,所以我怀疑它。)
谢谢,
雷姆
【问题讨论】:
标签: python unicode numpy ascii pyqt4