输入文件 CREATE TABLE IF NOT EXISTS test.employee(eid int,name String,salary String,destination String) 评论'员工详细信息' 行格式已删除 字段由'\ t'终止 由'\ n'终止的线路 存储为文本文件; CREATE TABLE IF NOT EXISTS test.employee1(eid int,name String,salary String,destination String) 评论'员工详细信息' 行格式已删除 字段由'\ t'终止 由'\ n'终止的线路 存储为文本文件; CREATE TABLE IF NOT EXISTS test.employee2(eid int,name String,salary String,destination String) 评论'员工详细信息' 行格式已删除 字段由'\ t'终止 由'\ n'终止的线路 存储为文本文件; ......等等
预期产出:
CREATE TABLE IF NOT EXISTS test.employee(eid int,name String,salary String,destination String) 评论'员工详细信息' 行格式已删除 字段由'\ t'终止 由'\ n'终止的线路 存储为文本文件;
将其另存为employee.hql 和CREATE TABLE IF NOT EXISTS test.employee1(eid int,name String,salary String,destination String) 评论'员工详细信息' 行格式已删除 字段由'\ t'终止 由'\ n'终止的线路 存储为文本文件;
将其另存为employee1.hql 等等..... 我尝试使用re,对我来说,它可能只捕获表名,或者以数据结束。无法加入两个重新表达式。我是python的新手。帮助我如何实现这一目标。
答案 0 :(得分:0)
这取决于您的输入文件有多大,但这是一个解决方案:
import re
sql_file = "sql.txt"
with open(sql_file) as f:
data=f.read().replace('\n', '')
items = data.split("; ")
for item in items:
if item: # skip blank lines
sql = item + ";"
table_name = re.findall(r"(\w+\.\w+)", sql)
if table_name:
_, outfile = table_name[0].split(".")
outfile += ".hql"
print("Writing:", outfile)
with open( outfile, "w") as f:
f.write(sql + "\n")
基本上,它读取while sql输入,然后它分为; ,后跟一个空格。如果你有任何其他分号,你需要将其修改为不那么脆弱。
接下来,它会查看每个项目,并查找字母,句点,字母。然后它将它拆分,并将第二部分(即您的表名)用作文件名。
最后,它会将SQL写出来并为其提供一个文件名,如上所述。
答案 1 :(得分:0)
<footer>
<div class="row-flex--footer">
<div class="column">
<nav>
<h4 class="hl--list footer__hl">Company</h4>
<ul>
<li> <a class="footer__link">About us</a></li>
<li><a class="footer__link">Careers</a></li>
<li> <a class="footer__link">News</a></li>
</ul>
</nav>
</div>
<div class="column">
<nav>
<h4 class="hl--list footer__hl">Surgeons</h4>
<ul>
<li> <a class="footer__link">3D Business Manager</a></li>
<li><a class="footer__link">Plans & Pricing</a></li>
</ul>
</nav>
</div>
<div class="column">
<nav>
<h4 class="hl--list footer__hl">Patients </h4>
<ul>
<li> <a class="footer__link">Find a Crisalix surgeon</a></li>
<li><a class="footer__link">Community</a></li>
</ul>
</nav>
</div>
<div class="column">
<nav>
<h4 class="hl--list footer__hl">Support </h4>
<ul>
<li> <a class="footer__link">Surgeon Help Center</a></li>
<li><a class="footer__link">Patient Help Center</a></li>
<li><a class="footer__link">Surgeon Help Center</a></li>
</ul>
</nav>
</div>
<div class="column">
<nav>
<h4 class="hl--list footer__hl">Legal</h4>
<ul>
<li> <a class="footer__link">Universal terms</a></li>
<li><a class="footer__link">Privacy policy</a></li>
<li><a class="footer__link">Security statements</a></li>
</ul>
</nav>
</div>
<div class="column">
<nav>
<h4 class="hl--list footer__hl">Social</h4>
<ul>
<li> <a class="footer__link">Facebook</a></li>
<li><a class="footer__link">Twitter</a></li>
<li><a class="footer__link">Youtube</a></li>
</ul>
</nav>
</div>
</div>
</footer>
不是很清楚,但这可能对你有帮助。