我在这里做了一些研究,但找不到我想要的确切答案。所以我想我应该寻求一些支持。我一直在编写一个python脚本,它将搜索CSV并检查最后一列是否为“真”。如果是,那么它检索的ID和主机名。下面我已经张贴的代码和错误。任何帮助将不胜感激!我相信它'这是一个简单的问题......
可能不应该是我的目标。我试图让这部分列出每个主机名与这个“命令”。甚至有办法做到这一点或没有?
COMMANDS = ("get 'C:\\" + HOSTNAME_HOST + ".zip'")
下面是CSV:
hostname,id,enabled
WIN10_PC,asdfasdfasdfasdfasdfasdf,TRUE
WIN_Server,asdfasdfasdfasdfasdfasdf,TRUE
下面是该脚本的示例:
import csv
AIDS_TO_EXECUTE = []
HOSTNAME_HOST = []
with open('hosts_to_execute.csv', 'rt') as csvfile:
data = csv.reader(csvfile, delimiter=',')
for hostname, aid, enabled in data:
if enabled == 'TRUE':
AIDS_TO_EXECUTE.append(aid)
HOSTNAME = (hostname)
HOSTNAME_HOST.append(HOSTNAME)
COMMANDS = ("get 'C:\\" + HOSTNAME_HOST + ".zip'")
#print(COMMANDS)
print(HOSTNAME_HOST)
我收到的错误:
Traceback (most recent call last):
File "test.py", line 13, in <module>
COMMANDS = ("get 'C:\\" + HOSTNAME_HOST + ".zip'")
TypeError: can only concatenate str (not "list") to str
1条答案
按热度按时间rhfm7lfc1#
我正试图让这一部分列出每个主机名与这个“命令”。甚至有办法做到这一点或没有?
最简单的方法是将
COMMANDS = []
放在for
循环之前和if
块do内就像
HOSTNAME_HOST
一样。或者,您可以使用列表解析:
您甚至可以将整个
for
循环替换为: