1

我对编程/python非常陌生,所以我很难理解应该以何种顺序执行不同的操作以获得最佳使用。我编写了一个脚本,它需要一长串单词并在不同的文件中搜索包含这些单词的文本位并返回结果,但目前速度不是很快。

我认为我首先需要优化的是下面列出的代码。是否有一种更节省资源的方法来编写以下代码:

ListofStuff = ["blabla", "singer", "dinger"]

def FindinFile(FindStuff):
    with open(File, encoding="utf-8") as TargetFile:
        for row in TargetFile:
            # search whole file for FindStuff and return chunkoftext as result

def EditText(result):
    #do some text editing to result
    print edited text


for key in ListofStuff:
    EditText(FindinFile(key))

每次我在最后的for循环中重新运行函数 FindinFile 时(打开)是否打开文件?或者 (with-open) 是否将文件保留在缓冲区中,直到脚本完成?

4

1 回答 1

0

您必须假设该变量是有效的并且存在于定义它的同一范围内。它是在一个with子句中定义的,所以一旦你退出这个子句(和函数),它就不再存在 - 所以是的,文件每次都会重新打开(除非有一些优化,但在这种情况下不太可能)。

于 2013-04-14T17:06:37.647 回答