循环相同,使用.write()给出两个不同的结果

时间:2014-06-02 17:46:27

标签: python-3.x

这是我第一次提出问题,所以让我知道我做错了什么(明智的)

我正在尝试创建一个写入.txt的函数,但我似乎在一个模块中调用它并在shell中直接编写相同的循环之间得到两个非常不同的结果。代码如下:

def function(para1, para2): #para1 is a string that i am searching for within para2. para2 is a list of strings
    with open("str" + para1 +".txt", 'a'. encoding = 'utf-8') as file:
    #opens a file with certain naming convention

        n = 0
        for word in para2:
            if word == para1:
                file.write(para2[n-1]+'\n')
                print(para2[n-1]) #intentionally included as part of debugging
            n+=1

function("targetstr". targettext) 
#target str is the phrase I am looking for, targettext is the tokenized text I am
#looking through. this is in the form of a list of strings, that is the output of
#another function, and has already been 'declared' as a variable 

当我在shell中定义这个函数时,我会看到正确的单词出现。但是,当我通过模块(在shell中)调用此相同的函数时,shell中没有任何内容,文本文件显示一堆数字(例如:' s93161),并且没有新行。

我甚至已经在模块中声明函数之后立即包含了一个print语句,并且只注释了print语句之外的所有内容,但是当我调用它时shell中没有任何内容。但是,数字仍显示在文本文件中。

我猜我在调用函数时如何定义参数或如何输入参数存在问题。

作为参考,这是所需的输出:

“她

阿什利

Kitty的

科茨

“让

PS:很抱歉,如果这不是很清楚,因为我对说python的知识非常有限

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。事实证明,在编译器识别出对模块中的函数所做的更改之前,我需要关闭shell并重新启动所有内容。感谢那些看过这个问题的人,以及那些试图提供帮助的人。