Python:" IOError:找不到C"

时间:2016-11-22 10:17:51

标签: python python-2.7 tkinter

我正在编写一个python脚本,它以csv格式导入多个输入数据文件并绘制统计图。但是我继续得到一个我无法弄清楚的错误。

任何建议都将受到高度赞赏。

这是代码相关部分的片段

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)

这是我得到的错误:

Error

1 个答案:

答案 0 :(得分:0)

您遇到与dataset = ...一致的问题,因此请使用print()查看您在此行中使用的变量中的内容print(data, self.fname, self.fname[data])

我认为您有self.fname文件的路径,并且您使用self.fname[data]获得第一个字符,并在np.genfromtxt()

中使用此单个字符作为名称

您使用Windows,因此完整路径以C:\开头,第一个字符为C
现在您看到消息C not found