Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将f.write文件保存到与askopenfilename相同的目录中_Python_File_Path_Save - Fatal编程技术网

Python 将f.write文件保存到与askopenfilename相同的目录中

Python 将f.write文件保存到与askopenfilename相同的目录中,python,file,path,save,Python,File,Path,Save,我正在用Python运行这个脚本,以查找文件中的某一行askopenfilename将询问我要搜索的文件,f.write将结果保存到文件中。如何将此文件自动保存在与原始文件相同的位置 from tkFileDialog import askopenfilename filename = askopenfilename() file = open(filename, "r") for line in file: if "INF: Camera timeout" in line:

我正在用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
在其他窗口后面打开,如何使其在顶部打开

要从路径中提取目录,请使用

我会将您的代码改写为:

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)
关于第二个问题,请参见


注意:上面的示例部分基于Alex Thornton的。

您将
f.close
的括号去掉,这使其成为不可操作的选项。您可以完全忽略它,因为上下文管理器会为您关闭它(
打开…
)。最好将文件移到循环外部打开,这样就不会重复打开和关闭文件。