Сохранение файла f.write в том же каталоге, что и имя askopenfilename

Я запускаю этот скрипт в Python, чтобы найти определенную строку в файле. askopenfilename спросит, какой файл я хочу найти, а файл f.write сохранит результаты в файле. Как автоматически сохранить этот файл в том же месте, где я нашел исходный файл?

 from tkFileDialog import askopenfilename filename = askopenfilename() file = open(filename, "r") for line in file: if "INF: Camera timeout" in line: with open("../timeouts.txt", "a") as f: f.write(line) f.close 

Также askopenfilename открывается за другими окнами, как я могу открыть его сверху?

Чтобы извлечь каталог из пути, используйте os.path.dirname(path) .

Я бы переписал ваш код как:

 from os.path import join, dirname from tkFileDialog import askopenfilename infilename= askopenfilename() outfilename = join(dirname(infilename), 'timeouts.txt') with open(infilename, 'r') as f_in, open(outfilename, 'a') as f_out: fout.writelines(line for line in f_in if "INF: Camera timeout" in line) 

Во втором вопросе см. Раздел «Как настроить фокус диалога с файлом Tkinter» .

Примечание. Вышеприведенный пример частично основан на удаленном ответе Алекса Торнтона.