条件错误:“如果不是”条件未运行,则导致该条件内的变量未定义

时间:2019-04-05 09:42:36

标签: python-3.x

我正在创建一段代码,该代码读取一个文件,将每一行分配给变量's',并评估该文件每一行的'activity'列中是否包含'substr_neg',并将其分配给一个' -'字符。

如果此字符为真,则我满足条件并在同一行的“名称”列中调用函数。

如果为false,则转到下一行。

(为澄清起见,此条件语句旨在查看substr_neg中的字符是否出现在“ ss”中,如果存在,则“执行某些操作”,否则,转到该文件的下一行)。

但是,问题是'if not'语句条件似乎未得到满足,因此变量'v'没有分配给函数'foofoo'的结果。

也:

if not(foo)

表示一种函数,该函数搜索文本文件中是否已存在字符串值,如果不存在,则将该函数应用于文件的名称列。

有人对为什么不满足“如果不是”陈述的条件有任何建议吗?也许范围原因?删除

if (char in substr_neg for char in ss):

连同elif语句可以解决所有问题...但是显然这不是我想要的。

substr_neg ='-'
var = 'str'
char = ''
with open("file.txt") as file: 
    for lines in file:
        if not lines.startswith("#"):
            s = lines
            ss = s.split('\t')
            if (char in substr_neg for char in ss):
                name = ss[0];
                activity = ss[2];
                varvar ="str".format(var, 
                name)
            else:
                next(file)
                if not foo(varvar):
                    v = foofoo(name)
                    foofoofoo(v)
        break;

1 个答案:

答案 0 :(得分:0)

文件变量不是列表,要将其转换为列表:

   file_list = file.readlines()
   #Then loop through file_list
   for lines in file_list:
       #...