如何从/etc/oratab文件中提取字符串?

2024-10-01 19:27:14 发布

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

我试图将数据库名称从一个名为/etc/oratab的文件中分离出来:

#Commends
DBNAME1:/opt/oracle/product/19000/db:N
DBNAME2:/opt/oracle/product/19000/db:N

以下代码仅返回DBNAME1:

def oratab():
    dblist=[]
    flag=False
    with open('/etc/oratab', 'r') as oratab:
        for line in oratab:
           if line and line[0].isalpha():
              flag=True
           if flag:
              dblist.append(line)
    return ''.join(dblist).split(':')[0]

如何更改脚本以获得数据库名的完整列表?你知道吗


Tags: 文件名称数据库dbiflineetcproduct
1条回答
网友
1楼 · 发布于 2024-10-01 19:27:14

您的dblistlines的列表,您希望从split行返回第一个元素,而不是dblist。你知道吗

','.join(dbline.split(':')[0] for bdline in dblist)

如果是的话,我想您需要返回列表中listdatabase names 删除join并返回return dblist

更好:

def oratab():
    dblist=[]
    with open('/etc/oratab', 'r') as oratab:
        for line in oratab:
           if line and line[0].isalpha():
              dblist.append(line.split(':')[0])
    return ','.join(dblist)

或更短

def oratab():
    dblist = []
    with open('/etc/oratab', 'r') as oratab:
        dblist = [line.split(':')[0] in oratab if line and line[0].isalpha()]
    return ','.join(dblist)

相关问题 更多 >

    热门问题