我写了一个小脚本,将“`”从多行SQL查询中删除,每次循环到达行尾时,它都会中断。下面是代码,以及我要插入的内容:
inp = input('Enter Query: ')
for s in inp:
if s != '`':
print(s, end = '')
输入为:
CREATE TABLE IF NOT EXISTS `mydb`.`Employees` (
`Employees_PK` INT NOT NULL,
`Employee_L_NAME` VARCHAR(45) NOT NULL,
`Employee_F_NAME` VARCHAR(45) NOT NULL,
`Employees_PHONE` VARCHAR(45) NOT NULL,
`Employee_EMAIL` VARCHAR(45) NOT NULL,
`Employee_HIRE_DATE` DATE NOT NULL,
`Employee_MANAGED_BY` INT NULL,
PRIMARY KEY (`Employees_PK`))
所以问题是for循环在一行之后中断,仅输出以下内容:
CREATE TABLE IF NOT EXISTS mydb.Employees (
有什么办法可以解决这个问题?保留结构(缩进等)不是必需的,但这会很好
答案 0 :(得分:0)
因为input()
仅占一行。
您会注意到,只需在print()
之后添加一个简单的input()
inp = input('Enter Query: ')
print('input check:', inp)
for s in inp:
if s != '`':
print(s, end = '')
"""
<Output>
input check: CREATE TABLE IF NOT EXISTS `mydb`.`Employees` (
CREATE TABLE IF NOT EXISTS mydb.Employees (
"""
因此,如果要获取多行输入,请按以下步骤更改:
print("Enter Query: ", end='')
# Get input until have line of texts.
while True:
inp = input()
if not inp:
break
for s in inp:
if s != '`':
print(s, end='')