【问题标题】:using for-loop on a function that opens a file在打开文件的函数上使用 for 循环
【发布时间】:2013-04-06 18:35:02
【问题描述】:

我对编程/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)将文件保留在缓冲区中直到脚本完成?

【问题讨论】:

    标签: python file-io for-loop


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 2019-06-27
      相关资源
      最近更新 更多