Python 连接方法调用结果

Python 连接方法调用结果,python,python-3.x,Python,Python 3.x,堆栈溢出上的第一个问题。我希望我遵守了协议 Python初学者。 Windows10-v3.6.10 我很难连接方法调用结果。我有这个工作 logging.info(f'PROCESSING {IMPORT_FILE.upper()} - ' + time.ctime(os.path.getmtime(IMPORT_FILE)) ) …我想补充一下 arcpy.management.GetCount(in_rows = IMPORT_FILE) 我已经尝试了很多方法,尽可能使用圆括号的不同位

堆栈溢出上的第一个问题。我希望我遵守了协议

Python初学者。 Windows10-v3.6.10

我很难连接方法调用结果。我有这个工作

logging.info(f'PROCESSING {IMPORT_FILE.upper()} - ' + time.ctime(os.path.getmtime(IMPORT_FILE)) )
…我想补充一下

arcpy.management.GetCount(in_rows = IMPORT_FILE)
我已经尝试了很多方法,尽可能使用圆括号的不同位置。例如:

logging.info(f'PROCESSING {IMPORT_FILE.upper()} - ' + time.ctime(os.path.getmtime(IMPORT_FILE)) + arcpy.management.GetCount(in_rows = IMPORT_FILE) )

我想知道我的具体问题的答案,但请提供更好的实现方式


非常感谢您的帮助。

您的第一个示例很有效,因为
ctime
返回字符串,但
GetCount
很可能返回数字。在Python中,您不能直接将数字“添加”到字符串中,但必须首先显式地将它们转换为
str

logging.info(f'PROCESSING {IMPORT_FILE.upper()} - ' + time.ctime(os.path.getmtime(IMPORT_FILE)) + str(arcpy.management.GetCount(in_rows = IMPORT_FILE)) )
但更好的方法是使用正确的字符串格式。事实上,您已经在第一个参数中使用了
f
-字符串,所以也可以在其他参数中使用它们:

logging.info(f'PROCESSING {IMPORT_FILE.upper()} - {time.ctime(os.path.getmtime(IMPORT_FILE))} {arcpy.management.GetCount(in_rows = IMPORT_FILE)}')

我不确定您是否理解正确,但这可能会起作用:

logging.info(f'PROCESSING{IMPORT_FILE.upper()}-{time.ctime(os.path.getmtime(IMPORT_FILE))}{arcpy.management.GetCount(in_rows=IMPORT_FILE)}

并且还尝试使用
+
-操作避免字符串连接,因为字符串在Python中是不可变的,所以每个
+
操作符都会分配新的内存。在这种情况下,这不是真正的关键问题,但可能是。

“我想知道我的具体问题的答案”-好吧,问题是什么?确切地说,什么不起作用?我建议不要使用
+
运算符进行字符串连接。您已经在使用f字符串,所以请继续这样做。要澄清所有这些。。。[1] 语法——您眼前的问题是
GetCount
返回一个
int
;您必须将其转换为
str
进行串联。[2] 编程风格——不要使用简单的
+
串联。相反,请返回有关输出格式的教程。对所有值使用一致的f字符串。“我希望我遵循协议”-这将有所帮助。第一个示例确实有效。我理解你用你的例子所说的话。Thanks@Dennis是的,我没有意识到
time.ctime
返回一个字符串,将其与
time.time
混淆。感谢Tobias,一旦您指出返回的内容,我就很清楚了。