Python中文
首页
教程
问答
标签
搜索
登录
注册
如何从Python中解析sql文件?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>是否有任何方法可以从Python中执行.SQL文件中的某些SQL命令,而不是文件中的所有SQL命令?假设我有以下<code>.sql</code>文件:</p> <pre><code>DROP TABLE IF EXISTS `tableA`; CREATE TABLE `tableA`( some_code ) ENGINE=MyISAM DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `tableB`; CREATE TABLE `tableB`( some_code ) ENGINE=MyISAM DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `tableC`; CREATE TABLE `tableC`( some_code ) ENGINE=MyISAM DEFAULT CHARSET=latin1; ...to be continued... </code></pre> <p>在这个文件中,我只想解析并运行与<code>tableB</code>相关的命令(即删除并创建<code>tableB</code>),但不想在Python中的其他表上执行任何SQL命令。我知道如何在Python中执行.sql文件,但不知道如何在.sql文件中仅执行上面示例中所述的一些特定命令。首先让我想到的是使用正则表达式。但是经过一点争论之后,由于我的regex知识和经验不足,我无法想出正确的regex语法来达到我的预期。</p> <p>所以我的问题是</p> <p>1)这里使用正则表达式只获取所需命令的方法正确吗?如果正确,您能告诉我解析它的正确语法吗?</p> <p>2)如果正则表达式不是最好的方法,那么还有什么其他的解决方案?</p> <p>3)我发现了一些在线regex测试工具,但它们都是指定表达式和测试字符串,并突出显示字符串中的匹配数据。我相信,如果有一些工具让我先指定测试字符串,然后在字符串中手动突出显示所需的数据,然后反向返回一些适当的语法/表达式,那就太好了。如果你知道这样的工具(没有限制在线工具!如果是Macintosh应用程序,我也很高兴),请告诉我。。。</p> <p>谢谢。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以尝试<a href="https://code.google.com/p/python-sqlparse/" rel="noreferrer">sqlparse</a>库,它将通过解析SQL语句来简化您的工作,并使您能够查询和使用SQL语句中的标记。在您的例子中,它可以是一个goos基来过滤掉包含特定标记(如<code>tableB</code>)的语句</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
2 回答
我想从用户导入值,为此
4 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
10 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
4 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
5 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
10 回答
我想从第一个空lin开始解析文本文件
1 回答
我想从简历、简历中提取特定部分
8 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
5 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
6 回答
我想从网上搜集一些关于抵押贷款的数据
4 回答
我想从网站上删除电子邮件地址
7 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
7 回答
我想从网站中提取数据,然后将其显示在我的网页上
7 回答
我想从网页上提取统计数据。
4 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
9 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
9 回答
我想从课堂上打印字典里的键
1 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
7 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
2 回答