获取bash变量内容的函数

h0ch5tr4355

我有bash字符串变量逐渐附加的文件:

URI += "path \
     path \
     path \
"
<some other code>

#URI += "path"

URI += "path \
     path"

您可能会注意到,有几种不同的附加方式,部分是跨几行的。这些文件中还有其他代码。

现在,我尝试编写一个获取变量内容(引号之间的所有内容)的函数:

def grepVar(filepath, var):
    list = []
    with open(filepath, "r") as file:
        for num, line in enumerate(file, 1):
            if var in line:
                if line.count('"') is 2:
                    list.append(line)

# until here it works for "URIs" over 1 line

                else:
                    num = num + 1
                    while(line.count('"') is 0):
                        list.append(line)
                        num = num + 1
    return list

print grepVar(path, "URI")

因此,在这种else情况下,我尝试手动引发循环并附加所有行,直到出现另一个引号(while-loop)。我不确定是否可以坚持这个想法,还是必须完全放弃它。在这种情况下,您能不能给我提示如何解决我的问题?由于具体的种类,我不确定是否描述得好。

Serge Ballesta

就像line通过更高级别的for num, line in enumerate(file, 1):循环给出的一样,您无法while (line...)在该循环内部使用

解决此问题的常用方法是保存线之间的状态。您的职能可能会变成(我num因为不了解要求而取消了管理):

def grepVar(filepath, var):
    lst = []
    inquote = False
    with open(filepath, "r") as fil:
        for num, line in enumerate(fil, 1):
            if inquote:
                lst.append(line)
                if line.count('"') > 0:
                    inquote = False
            elif var in line:
                if line.count('"') == 2:
                    lst.append(line)
                else:
                    lst.append(line)
                    inquote = True
    return lst

您还应该避免为自己的变量使用标准的Python单词,例如listof file,因为它们隐藏了标准含义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取bash中变量的内容

来自分类Dev

bash函数-在变量内部获取函数stdout值,并在函数外部修改变量

来自分类Dev

从函数中获取脚本时,Bash Shell变量丢失

来自分类Dev

从内部函数获取变量

来自分类Dev

从函数中获取变量

来自分类Dev

获取函数的变量

来自分类Dev

bash:连接多个变量的内容

来自分类Dev

如何在获取调用函数返回的内容时将局部变量传递给回调?

来自分类Dev

如何使用bash获取字符串中函数的内容?

来自分类Dev

bash:函数范围之外的变量

来自分类Dev

通过函数传递的Bash变量

来自分类Dev

函数中的Bash变量替换

来自分类Dev

Bash 在函数后丢失了变量

来自分类Dev

局部变量如何获取此bash shell函数的参数值?

来自分类Dev

获取函数中的最后一个echo语句并将变量放入bash中

来自分类Dev

局部变量如何获取此bash shell函数的参数值?

来自分类Dev

在bash中获取变量类型

来自分类Dev

从函数获取变量值

来自分类Dev

获取内部加载函数的变量

来自分类Dev

如何从函数中获取变量?

来自分类Dev

获取在函数内部创建的变量

来自分类Dev

获取内部加载函数的变量

来自分类Dev

从内部函数获取Javascript变量

来自分类Dev

从函数获取变量值

来自分类Dev

JS在函数内部获取变量

来自分类Dev

从Python函数获取输出变量

来自分类Dev

如何从函数中获取变量?

来自分类Dev

在动画函数中获取变量

来自分类Dev

如何从外部函数获取变量