如何在Python中关闭多行变量/注释?

如何在Python中关闭多行变量/注释?,python,Python,我收到这个错误: File "/DateDbLoop.py", line 33 d.Id""" % (str(day), str(2840))" ^ SyntaxError: EOL while scanning single-quoted string 这是剧本。有4个双引号来打开这个,但我不确定如何正确地关闭这个 跟进问题: 这个%(str(day),str(2840))是否需要同时放入sql变量和os.system()调用中 #/usr/bin/pyt

我收到这个错误:

  File "/DateDbLoop.py", line 33  
    d.Id""" % (str(day), str(2840))"  
    ^  
SyntaxError: EOL while scanning single-quoted string  
这是剧本。有4个双引号来打开这个,但我不确定如何正确地关闭这个

跟进问题:

这个%(str(day),str(2840))是否需要同时放入sql变量和os.system()调用中

#/usr/bin/python
导入日期时间
导入系统、操作系统、时间、字符串
a=日期时间日期(2009年1月1日)
b=日期时间日期(2009年2月1日)
一天=datetime.timedelta(1)
一天

而day则使用三重引号

s = """
Python is awesome.
Python is cool.
I use Python.
And so should you.
"""

print s

Python is awesome.
Python is cool.
I use Python.
And so should you.

你用三个引号来表示这个

s = """
Python is awesome.
Python is cool.
I use Python.
And so should you.
"""

print s

Python is awesome.
Python is cool.
I use Python.
And so should you.

sql=行有4个双引号,改为3。同时,删除您的替换值后的单个报价

#!/usr/bin/python

import datetime
import sys, os, time, string

a = datetime.date(2009, 1, 1)
b = datetime.date(2009, 2, 1)
one_day = datetime.timedelta(1)

day = a

while day <= b:
    print "Running query for \"" + str(day) + "\""

    sql="""SELECT
    d.Date,  
    SUM(d.Revenue)
    FROM Table d  
    WHERE d.Date = '%s'  
    AND d.Id = %s  
    GROUP BY d.Date  
    """ % (str(day), str(2840))

    os.system('mysql -h -sN -u  -p -e "%s" > FileName-%s.txt db' % (sql, str(day)))
    day += one_day
#/usr/bin/python
导入日期时间
导入系统、操作系统、时间、字符串
a=日期时间日期(2009年1月1日)
b=日期时间日期(2009年2月1日)
一天=datetime.timedelta(1)
一天

当day在sql=行中有4个双引号时,改为3。同时,删除您的替换值后的单个报价

#!/usr/bin/python

import datetime
import sys, os, time, string

a = datetime.date(2009, 1, 1)
b = datetime.date(2009, 2, 1)
one_day = datetime.timedelta(1)

day = a

while day <= b:
    print "Running query for \"" + str(day) + "\""

    sql="""SELECT
    d.Date,  
    SUM(d.Revenue)
    FROM Table d  
    WHERE d.Date = '%s'  
    AND d.Id = %s  
    GROUP BY d.Date  
    """ % (str(day), str(2840))

    os.system('mysql -h -sN -u  -p -e "%s" > FileName-%s.txt db' % (sql, str(day)))
    day += one_day
#/usr/bin/python
导入日期时间
导入系统、操作系统、时间、字符串
a=日期时间日期(2009年1月1日)
b=日期时间日期(2009年2月1日)
一天=datetime.timedelta(1)
一天

而day用三个引号打开和关闭字符串

sql = """
      SELECT d.Date, SUM(d.Revenue),
      FROM Table d WHERE d.Date = '%s' AND d.Id = %s 
      GROUP BY d.Date
      """ % (str(day), str(2840))
也可以在字符串中间用一个字符来打破一条线。
#!/usr/bin/python

import datetime
import sys, os, time, string

a = datetime.date(2009, 1, 1)
b = datetime.date(2009, 2, 1)
one_day = datetime.timedelta(1)

day = a

while day <= b:

 print "Running query for \"" + str(day) + "\""

 sql="SELECT d.Date, SUM(d.Revenue), FROM Table d WHERE d.Date = '%s' \
      AND d.Id = %s GROUP BY d.Date " % (str(day), str(2840))

 os.system('mysql -h -sN -u  -p -e %s > FileName-%s.txt db' % (sql, str(day)))
#/usr/bin/python
导入日期时间
导入系统、操作系统、时间、字符串
a=日期时间日期(2009年1月1日)
b=日期时间日期(2009年2月1日)
一天=datetime.timedelta(1)
一天

而day用三个引号打开和关闭字符串

sql = """
      SELECT d.Date, SUM(d.Revenue),
      FROM Table d WHERE d.Date = '%s' AND d.Id = %s 
      GROUP BY d.Date
      """ % (str(day), str(2840))
也可以在字符串中间用一个字符来打破一条线。
#!/usr/bin/python

import datetime
import sys, os, time, string

a = datetime.date(2009, 1, 1)
b = datetime.date(2009, 2, 1)
one_day = datetime.timedelta(1)

day = a

while day <= b:

 print "Running query for \"" + str(day) + "\""

 sql="SELECT d.Date, SUM(d.Revenue), FROM Table d WHERE d.Date = '%s' \
      AND d.Id = %s GROUP BY d.Date " % (str(day), str(2840))

 os.system('mysql -h -sN -u  -p -e %s > FileName-%s.txt db' % (sql, str(day)))
#/usr/bin/python
导入日期时间
导入系统、操作系统、时间、字符串
a=日期时间日期(2009年1月1日)
b=日期时间日期(2009年2月1日)
一天=datetime.timedelta(1)
一天


而day@David:我试图稍微修改一下格式。如果你不同意我所做的,请随意后退。不,没关系,谢谢亚当。仍然掌握着网站的运作方式。@David:我试着修改一下格式。如果你不同意我所做的,请随意后退。不,没关系,谢谢亚当。史蒂夫:如果你不知道的话,你可以突出显示你的代码,然后按Ctrl-k将其格式化为带有语法突出显示的单空格字体。太棒了!我以为每行都必须按Ctrl+k。这要简单得多:)@Steve:如果你不知道,你可以突出显示你的代码,然后按Ctrl-k键,让它以单空格字体格式化,并突出显示语法。太棒了!我以为每行都必须按Ctrl+k。这要容易得多:)三个单引号也可以。Python不区分single和double,除了使用相同的字符打开和关闭字符串。是的。当你想引用的东西已经有一种或另一种引号的时候,非常方便。谢谢Dav。我做了这个改变,但现在我得到了一个新的错误。这一次是mysql错误:第1行的错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第1行的“”附近使用的正确语法。我刚刚意识到:我是否需要在sql变量和os.system()中都使用此%(str(day),str(2840))?啊,不,问题是,由于您要将其回显到命令行,因此需要在命令行中引用它。我会在os.system调用中使用双引号来实现这一点-我会编辑上面的示例代码以反映它,请注意“%s”而不是现在的%s。此外,您还需要删除select中SUM()之后的逗号,因为它是FROM之前的最后一项。我也编辑了这个例子。三个单引号也可以。Python不区分single和double,除了使用相同的字符打开和关闭字符串。是的。当你想引用的东西已经有一种或另一种引号的时候,非常方便。谢谢Dav。我做了这个改变,但现在我得到了一个新的错误。这一次是mysql错误:第1行的错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第1行的“”附近使用的正确语法。我刚刚意识到:我是否需要在sql变量和os.system()中都使用此%(str(day),str(2840))?啊,不,问题是,由于您要将其回显到命令行,因此需要在命令行中引用它。我会在os.system调用中使用双引号来实现这一点-我会编辑上面的示例代码以反映它,请注意“%s”而不是现在的%s。此外,您还需要删除select中SUM()之后的逗号,因为它是FROM之前的最后一项。我也编辑了这个例子。