Divergent
Апрель 13, 2010 08:36:40
Как я понимаю можно только указать один файл. То есть если мне надо 10 файлов обрабатывать, то или грубо 10 кнопок через которые я укажу файлы или указал один - обработал…следующий - обработал(но хотелось бы поменьше действий)
Griffon
Апрель 13, 2010 09:15:55
Что-то я ничего не понял. Можно более чётко суть вопроса? Какие файлы, как обрабатывать, чем обрабатывать, где указываете фалы, какие методы вызывает нажатие на кнопку?
И пример кода.
Divergent
Апрель 13, 2010 10:49:19
Есть скрипт, который обрабатывает логи. Он будет в Function.
Так как файл лога не один (их 10), то вопрос какбы их засунуть в список файлов
ну что-то типа
listfname=
append.listfname(fname)
for file in listfilename:
print file
from Tkinter import *
from FileDialog import *
def Function(fname):
d = FileDialog(root)
fname = d.go()
print fname
root = Tk()
but = Button(root,text="File in")
but.pack()
but.bind("<Button-1>",Function)
root.mainloop()
Cover Story
Апрель 13, 2010 13:01:56
Может как-то так?
import Tkinter
import tkFileDialog
root = Tkinter.Tk()
input_files = tkFileDialog.askopenfilenames()
for file in input_files:
print file
Tkinter.mainloop()
Divergent
Апрель 13, 2010 14:09:13
Спасибо! Это уже намноооого лучше.
Хоть нормальное окошко выбора файлов :))
параметр поставил multiple=1 чтобы можно было несколько файлов выбрать.
Вот только список путей файлов указан через пробел и поэтому print file печаетает буковки…
C
:
/
T
e
m
p
теперь надо разобраться как их разделить.
Cover Story
Апрель 13, 2010 14:18:19
Может дело в операционке? У меня все пути ровные
Divergent
Апрель 13, 2010 14:24:34
Не думаю. Обычная винда XP
import Tkinter
import tkFileDialog
root = Tkinter.Tk()
input_files = tkFileDialog.askopenfilenames(multiple=1)
print input_files
#for file in input_files:
# print file
Tkinter.mainloop()
Вывод результата
>>>
C:/Temp/file_2.log C:/Temp/file_1.log
>>>
А у тебя по другому?
Cover Story
Апрель 13, 2010 14:34:48
Конкретно результат вашего скрипта у меня выглядит вот так:
('C:/Python25/apsw-wininst.log', ‘C:/Python25/CherryPy-wininst.log’, ‘C:/Python25/clearsilver-0.10.4-py2.5-win32.egg’, ‘C:/Python25/dpkt-wininst.log’)
Divergent
Апрель 13, 2010 14:58:18
Видимо версии питона разные :(
Griffon
Апрель 13, 2010 15:27:28
Ну так если нет пробелов в именах файлов, то что мешает использовать .split(“ ”)? По крайней мере по “ C : / ” точно можно разбить безошибочно.