我正在尝试修改Splunk中csv文件中的特定列。以下代码无效,并且正在生成以下内容。
External search command 'queryinc' returned error code 1. Script output = "Incident_Number,Incident_Status INC000000003050,Assigned INC000000003051,Assigned INC000000003052,Assigned INC000000003053,Assigned INC000000003054,Assigned INC000000003101,Assigned INC000000003102,Closed INC000000003103,Assigned INC000000003104,Closed "
关于我哪里出错的任何想法?我是python的新手,所以如果这是基本的话,我不会感到惊讶。 si.splunkHome()
只需提取“Splunk Home”目录,该目录在Splunk中定义。
f = open(os.path.join(si.splunkHome(),"etc","apps","integration","lookups","incidents.csv"), 'a+')
for line in f:
columns = line.split(',')
columns[7] = '%s' % (statusResult)
f.write( ','.join(bits))
f.close()
答案 0 :(得分:0)
您正尝试一次读取和写入同一文件。这就是问题所在。
您应首先阅读该文件,然后使用open(fname, "r")
,并在旁边的某处创建新内容,从而具有f2 = open(outfname, "a")
(或使用“w”模式)。
最后,您应删除原始csv文件并移动新文件。
读取和写入相同的文件很困难,如果您有严格的二进制结构,通常可以正常工作。
import os
fname = os.path.join(si.splunkHome(),"etc","apps","integration","lookups","incidents.csv")
with open(fname, "r") as fr, open("tmpfile.csv", "w") as fw:
for line in fr:
columns = line.split(',')
columns[7] = '%s' % (statusResult)
fw.write( ','.join(bits))
请注意,此代码不会运行,因为它包含一些我不知道的外部内容。