2016-07-28 9 views
0

У меня возникли проблемы с получением пути к файлу, чтобы я мог открывать и выполнять мои данные из указанного (текстового) файла. Ниже приведен код, который я написал до сих пор:Получение пути к файлу в python 2.7

def pickfile(): 
    options={} 
    options['defaultextension'] = '.txt' 
    options['filetypes'] = [('all files','.*'), ('text files', '.*txt')] 
    options['initialfile'] = 'sample.txt' 
    options['initialdir'] = 'C:\Users\profcs\Desktop' 

    filename=open(tkFileDialog.askopenfilename(**options)) 
    if filename: 
     print(filename) 
     return 
    with open(filename, 'rb') as f: 
     reader = csv.reader(f) 
     try: 
      for row in reader: 
       print row 
     except csv.Error as e: 
      sys.exit('file %s, line %d: %s' % (filename, reader.line_num,e)) 

but1 = Button(widget1, text='Pick Your File', command=pickfile) 
but1.pack(side=BOTTOM, padx=10, pady=1, anchor=SE) 
but1.config(relief=RAISED, bd=2) 

Когда я отображать имя файла, я теперь получить путь в этой форме:

================ RESTART: C:\Users\profcs\Desktop\BD TEST.py ================ 
<open file u'C:/Users/profcs/Desktop/sample.txt', mode 'r' at 0x01EFF128> 

Как я могу отфильтровать этот путь и получить только 'C:/Users/profcs/Desktop/sample.txt' так что я могу открыть файл?

Заранее спасибо.

ответ

0

filename.name дает вам путь от filename объекта.

Я надеюсь, что это помогает:

filename = open(tkFileDialog.askopenfilename(**options)) 
print (filename.name) 
'C:/Users/profcs/Desktop/sample.txt' 

В вашем случае filename это объект, который представляет собой открытый файл.

Смежные вопросы