5

标题说明了一切,我需要在一行中记录两个字符串。
例如,像这样:

logging.info(string1,string2)

谢谢 :)

4

5 回答 5

16

日志记录功能如下所示:

result = arg1 % (arg2, arg3, ...)

您将尝试用第二个字符串格式化第一个字符串:

result = string1 % string2

手动指定格式字符串:

logging.info('%s %s', string1, string2)

或者将它们连接成一个字符串:

logging.info(' '.join([string1, string2]))
于 2013-09-21T20:38:10.943 回答
3

您可以使用 %-formatting,如下所示:

logging.info("%s %s", string1, string2)

例如:

 >>> string1, string2 = "spam", "pie"
 >>> logging.info("%s %s", string1, string2)
 INFO: spam pie
于 2013-09-21T20:37:52.890 回答
2
>>> ( s1,s2 ) = ( 'apple','mango' );
>>> print( '{},{}'.format(s1,s2) );
apple,mango
于 2013-09-21T20:42:21.473 回答
2

使用 f 字符串,您可以将其变成单行代码并使其具有可读性。

# python3 f-strings
logging.info(f'{string1} {string2}')
于 2021-03-10T08:56:06.660 回答
0
logger.info("String 1: {0!r} --- String 2: {1!r}".format(string1, string2))

演示:

>>> print "String 1: {0!r} --- String 2: {1!r}".format('hello', 'world')
String 1: 'hello' --- String 2: 'world'
>>> print "String 1: {1!r} --- String 2: {0!r}".format('world', 'hello')
String 1: 'hello' --- String 2: 'world'

这里需要注意两点:

  1. {0!r} 和 {1!r} 中的数字指定您从输入中获得的参数。
  2. '!s' (apply str()) 和 '!r' (apply repr()) 可用于在格式化之前转换值。
于 2013-09-21T20:40:35.547 回答