这是我第一次提出问题,所以让我知道我做错了什么(明智的)
我正在尝试创建一个写入.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的知识非常有限
答案 0 :(得分:0)
我找到了解决问题的方法。事实证明,在编译器识别出对模块中的函数所做的更改之前,我需要关闭shell并重新启动所有内容。感谢那些看过这个问题的人,以及那些试图提供帮助的人。