gpt4 book ai didi

python - 即使我想打印所有文件,也只打印文件夹中第一个文件的内容

转载 作者:行者123 更新时间:2023-12-04 14:06:47 25 4
gpt4 key购买 nike

我有这个函数,从文件夹中删除停用词后返回文件夹中的所有文件,但问题是当我打印这个函数的结果时,只打印第一个文件的内容,我想打印所有从文件中删除停用词后的文件。
我该如何解决问题?

def remove_stop_word_from_files():
stop_words_list = get_stop_words()
dir_path = 'C:/Users/Super/Desktop/IR/homework/Lab4/corpus/corpus/'
save_dir = "C:/Users/Super/Desktop/IR/homework/Files_Without_SW/"

for document in os.listdir(dir_path):
with open(dir_path + document, "r") as reader:
save_file = open(save_dir + document, 'w')
text = reader.read()
text_tokens = word_tokenize(text)
tokens_without_sw = [word.replace(',', '').replace('.', '') for word in
text_tokens if (word not in stop_words_list)]
save_file.writelines(["%s " % item.replace(',', '').replace('.', '') for item in
tokens_without_sw])

return tokens_without_sw

print(remove_stop_word_from_files())

最佳答案

线

return tokens_without_sw
将导致函数在 for 循环的第一次迭代时结束。您可以创建另一个变量,例如 all_tokens_without_sw,而不是在 for 循环中返回 tokens_without_sw,您可以在 for 循环的末尾附加 tokens_without_sw。然后在 for 循环之后,您可以返回 all_tokens_without_sw。
def remove_stop_word_from_files():
stop_words_list = get_stop_words()
dir_path = 'C:/Users/Super/Desktop/IR/homework/Lab4/corpus/corpus/'
save_dir = "C:/Users/Super/Desktop/IR/homework/Files_Without_SW/"

all_tokens_without_sw = []

for document in os.listdir(dir_path):
with open(dir_path + document, "r") as reader:
save_file = open(save_dir + document, 'w')
text = reader.read()
text_tokens = word_tokenize(text)
tokens_without_sw = [word.replace(',', '').replace('.', '') for word in
text_tokens if (word not in stop_words_list)]
save_file.writelines(["%s " % item.replace(',', '').replace('.', '') for item in
tokens_without_sw])

all_tokens_without_sw = all_tokens_without_sw + tokens_without_sw

return all_tokens_without_sw

print(remove_stop_word_from_files())

关于python - 即使我想打印所有文件,也只打印文件夹中第一个文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67943160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com