我有这个密码
for i in list:
if not not_existing_signals(i):
#store the signal
def not_existing_signals(name_of_signal):
for filename in Path('c:\....').glob('**/*.txt') :
with open(filename) as f:
if name_of_signal in f.read():
return True
return False
我要做的是检查我的列表中的一个元素是否不存在于文件夹中的任何地方,如果它至少存在于一个文件中,我就不需要将它存储在任何地方。你知道吗
更新
所以我想要的是在文件夹中搜索一个signal name
,而不是在每个文件中分别搜索,看看它是否不存在
我有大约100个信号名。例如,如果其中一个在第三个文件中,程序将返回false,因为它将检查它是否在第一个和第二个文件中。如果三个文件上没有信号,我想返回false
你应该使用Regex。 试试这个:
上面我放在一起的可能不起作用,但是使用regex可能是实现您想要做的事情的最有效的方法。你知道吗
您试图构建的函数检查一个单词(即
name_of_signal
)是否不在目录中的任何文件中 这意味着,如果至少有一个文件包含
name_of_signal
,则返回False
;如果所有文件都不包含name_of_signal
,则返回True
。你知道吗这可以被概念化为:
您的函数是正确的,但它检查的结果正好相反:不是检查任何文件中是否包含单词,而是检查是否至少在文件中包含单词:
解决方案:
解决方法是将
return True
与return False
交换:如果不想更改代码,只需更改函数名即可:
从
not_existing_signals
到existing_signals
!!你知道吗相关问题 更多 >
编程相关推荐