如何将数据输入到outpu的(括号)中

2024-09-28 05:18:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我打印了一个输出,例如:

enable
configure terminal
interface fa(fanumber)/(fanumber)
ip adress (ip) (subnet mask) 
no shutdown

我想在所有括号中输入新数据:

在我的例子中,这些是:

(fanumber)/(fanumber)
(ip) (subnet mask)

我需要在当前函数中编写更多代码还是编写新函数?你知道吗

我该怎么做?你知道吗

我目前的职能是:

def readciscodevice(function, device):
            conn = sqlite3.connect('server.db')
            cur = conn.cursor()
            if device == "switch":
                    cur.execute(
                            "SELECT DISTINCT command FROM switch WHERE   function =? or function='configure terminal' or function='enable'  ORDER BY key ASC",
                            (function,))
                    read = cur.fetchall()
                    return read
            elif device == "router":
                    cur.execute(
                            "SELECT DISTINCT command FROM router WHERE   function =? or function='configure terminal' or function='enable'  ORDER BY key ASC",
                            (function,))
                    read = cur.fetchall()
                    return read;
            elif device == "showcommand":
                cur.execute(
                        "SELECT DISTINCT command FROM showcommand WHERE   function =? or  function='enable'  ORDER BY key ASC",
                        (function,))
                read = cur.fetchall()
                return read;



    a = input("function:")
    b = input("device:")
    for result in readciscodevice(a,b):
            print(result[0])

我不是要你重写我的函数。我只是想寻求帮助来解决括号()问题。你知道吗

谢谢

更新: 我是否需要使用replace()来执行我的函数?你知道吗

更多更新: 也许我没有解释清楚我的问题。我想将我的数据重新输入到我的输出中,使其来自:

interface fa(fanumber)/(fanumber)
ip adress (ip) (subnet mask) 

进入

interface fa0/1
ip adress 192.168.1.1 255.255.255.0

Tags: or函数ipreadenableconfiguredevicefunction
1条回答
网友
1楼 · 发布于 2024-09-28 05:18:59

不确定我是否完全理解您的问题,但要在括号之间的文本中找到任何内容,您可以尝试以下操作:

import re
p = re.compile('\(.*?\)')
iterator = p.finditer('I (want) to (capture) some (words) in (parenthesis)')
for match in iterator:
    print(match.group())

输出:

(want)
(capture)
(words)
(parenthesis)

但是请注意,一旦括号中的单词可以嵌套(例如“some(words in(insulars))”),这就不太好用了。而且,它不会捕获示例中的除法字符。我猜你必须写一些例外/一个更复杂的正则表达式来捕获一些数学运算符。你知道吗

更新:

iterator = p.finditer(s)
for match in iterator:
    s = s[:match.start()] + [match.start():match.end()].replace(match.group(), dict[match.group()]) + s[match.end()]

相关问题 更多 >

    热门问题