首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:"IOError: C not found“

Python:"IOError: C not found“
EN

Stack Overflow用户
提问于 2016-11-22 18:17:51
回答 1查看 210关注 0票数 0

我正在编写一个python脚本,以csv格式导入多个输入数据文件,并绘制统计图。然而,我一直得到一个错误,我无法找出。

任何建议都将不胜感激。

以下是代码的相关部分的代码片段

代码语言:javascript
复制
import numpy as np
import matplotlib
import Tkinter
matplotlib.use('TkAgg')
from matplotlib import pyplot as plt
from matplotlib import gridspec
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from Tkinter import Frame,Button,Canvas, Scrollbar, Tk, Checkbutton, W,E,N,S, VERTICAL, Y, BOTH, FALSE, TRUE, RIGHT, LEFT, Label, StringVar,IntVar
from tkFileDialog import askopenfilename, askopenfilenames
from tkMessageBox import askokcancel, showwarning
import sys


class MyGuiPlot(Frame):

    def open_csv(self): # open file + control defaultextension of it
        fname = askopenfilenames(defaultextension='.csv',
                  filetypes=[('CSV file','*.csv')])
        if fname:

            self.length = len(fname)
            self.get_data_multi(fname)               


    def get_data_multi(self, fname):
        self.fname = fname

        # button_show_all = Button(self.root, text='Show all', command = lambda d = dataset, vars_all = vars_all,v=vars: self.var_states(v,dataset,vars_all))
        # button_show_all.grid(row = len(fname)+1, column=0, sticky = W)


        check_frame = Frame(self.root)
        check_frame.grid(row=1,columnspan=12,sticky=W)
        position = 0
        vars_all = []
        for data in range(len(fname)):
            j=0
            x=0
            print(data)
            vars = []
            #position = data*len(fname)
            dataset = np.genfromtxt(self.fname[data], dtype = float, delimiter = ',', names = True)
            file_name = Label(check_frame, text='DATASET{0} => {1}'.format(data,self.fname[data]))
            button_go = Button(check_frame, text= 'GO!', command = lambda dataset = dataset, v=vars: self.var_states(v,dataset))
            file_name.grid(row=position,column=0,columnspan=12, sticky=W)
            button_go.grid(row=position+3,columnspan=2, sticky=W)

            for _ in dataset.dtype.names:   # creating checkboxes
                var_ = StringVar()
                if _.startswith('x'):

                    ch_btn = Checkbutton(check_frame, text='{}'.format(str(data)+_), variable=var_, onvalue=str(data)+':'+_)
                    ch_btn.deselect()
                    ch_btn.grid(row=position+2,column=x, sticky=W)
                    x+=1

                    vars.append(var_)
                    vars_all.append(var_)
                else:
                    ch_btn = Checkbutton(check_frame, text='{}'.format(str(data)+_), variable=var_, onvalue=str(data)+':'+_)
                    ch_btn.deselect()
                    ch_btn.grid(row=position+1,column=j, sticky=W)
                    vars.append(var_)
                    j+=1
                    vars_all.append(var_)
            if len(fname) ==2:position +=len(fname)+2
            else:position +=len(fname)+1
        #print(vars_all)
        button_show_all = Button(self.root, text='Show all', command = lambda id=0: self.var_states(dataset = dataset,vars_all=vars_all))
        button_show_all.grid(row = len(fname)+1, column=0, sticky = W)

这是我得到的错误:

EN

回答 1

Stack Overflow用户

发布于 2016-11-23 07:24:02

您在使用dataset = ...时遇到了问题,因此可以使用print()来查看在本行print(data, self.fname, self.fname[data])中使用的变量中的内容

我认为您在self.fname中有文件的路径,您使用self.fname[data]获取第一个字符,并在np.genfromtxt()中使用此单个字符作为名称

您使用的是Windows,因此完整路径以C:\开头,第一个字符为C

现在,您将看到消息C not found

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40739194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档