比较python中的两个列表,使用通配符

2024-09-28 01:23:02 发布

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

我使用pymysql来获取数据库表结果,如下所述,一个表有一个非fqdn列表,另一个表有一个fqdn列表。从本质上说,我想验证完整的fqdn表中是否存在分部-如果存在,则进行DB插入。任何帮助都将不胜感激。见下表:

#!/usr/bin/python                                                               
'''Produce list of machines that are postivie matches for rhn and vmware member\
ship'''

import os
import pymysql
import glob

conn = pymysql.connect(host='10.0.0.101', port=3306, user='root', passwd='', db\
='hosts')

cur = conn.cursor()
cur.execute("SELECT hostname from rhnreg")
rhnreg = []
for r in cur.fetchall():
    rhnreg.append(r)

cur.close
cur = conn.cursor()
cur.execute("SELECT hostname from metalreg")

mreg = []
for r in cur.fetchall():
    mreg.append(r)

cur.close
conn.close

Tags: infromimport列表forcloseexecuteconn
1条回答
网友
1楼 · 发布于 2024-09-28 01:23:02

MySQL默认支持字符串模式匹配和查询,因此您应该使用它(有关这些的更多信息,请参见http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.htmlhttp://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html

结果是

SELECT hostname FROM fullyqualifiedhostnames where hostname LIKE "%non-qualified-hostname%";

除此之外,确保实际调用close函数(在上面的示例中,您只是“引用”实际函数,而不是调用它们)。Python对调用有严格的paren(例如cur.close()conn.close()

如果您想在python中实现这一点,很可能可以使用regex(https://docs.python.org/2/library/re.html)。另一个可能的选择是只使用fnmatch内置库,它将为您提供类似UNIX的文件通配符,这对于您的用例(https://docs.python.org/2/library/fnmatch.html)来说已经足够好了

相关问题 更多 >

    热门问题