def commandTaskList(self, schid, targetMode, toID, fromID, params=""):
import psutil
msg = []
for p in psutil.process_iter():
try:
_p = str(p.as_dict(attrs=['name'])['name'])
ts3lib.logMessage(_p, ts3defines.LogLevel.LogLevel_ERROR, "PyTSon", 0)
if ".exe" in _p.lower(): msg.extend(_p)
except psutil.Error: pass
ts3lib.logMessage(str(msg), ts3defines.LogLevel.LogLevel_ERROR, "PyTSon", 0)
msg = '\n'.join(sorted(msg))
self.answerMessage(schid, targetMode, toID, fromID, msg)
这是我的代码,第一个logMessage()显示:
1/28/2017 04:32:30 PyTSon Error RemindersServer.exe
1/28/2017 04:32:30 PyTSon Error AutoHotkey.exe
1/28/2017 04:32:30 PyTSon Error raptr_ep64.exe
第二个显示:
1/28/2017 04:32:30 PyTSon Error ['w', 'i', 'n', 'l', 'o', 'g', 'o', 'n', ...]
答案 0 :(得分:2)
以下是list.extend()
docstring:
Docstring:L.extend(iterable) - 通过追加元素来扩展列表 来自可迭代的
输入:builtin_function_or_method
字符串被视为一系列字符,因此它是可迭代的。
a.extend(b)
将b
的每个元素附加到a
。由于在您的情况下b
是一个字符串,因此b
的每个字符都作为单独项附加到a
。您需要的是a.append(b)
或a.extend([b])
。
答案 1 :(得分:1)
使用[<your_list>].append("your string")
或[<you_list>].extend(["your string as a list of one element"])
str
是一种与list
非常相似的序列数据类型。考虑这个例子:
>>> [1, 2, 3].extend([4, 5, 6])
[1, 2, 3, 4, 5, 6]
同样的规则适用于单个字符作为元素的str
。