Python f.out文件名

2024-04-23 06:51:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生,所以如果我问了一个非常愚蠢的问题,请耐心听我说。我环顾四周,但可能我不知道如何解决这个问题。你知道吗

我正在运行一个脚本来读取CSV文件,查找并替换值,然后写入文件。CSV文件包含n行,每行需要创建一个不同的文件,并在“行3”中添加值,替换值。但是,当我运行脚本时,我只得到最后一行的一个输出文件。下面是我的剧本。你知道吗

file_reader= open('variables.csv', "rt")
read = csv.reader(file_reader)

for row in read:
     values = { '[type]':row[0], '[model]':row[1], '[name]':row[2],'[host]':row[3] } 



if row[0] == "1": 
    if row[1] == "alpha":
        t = open("alpha.conf", "r")
    elif row[1] == "beta":
        t = open("beta.conf", "r")

def replace_words(base_text, device_values):

temp = t.read()
t.close()

output = replace_words(temp, values)

outputfile = "host"+row[3]+".txt"
fout = open(outputfile,'w')
fout.write(output)
fout.close()

请有人帮忙,告诉我我做错了什么。你知道吗

谢谢你


Tags: 文件csvalpha脚本hostreadifconf
1条回答
网友
1楼 · 发布于 2024-04-23 06:51:37

问题从以下代码开始:

for row in read:
  values = {
    '[type]': row[0],
    '[model]': row[1],
    '[name]': row[2],
    '[host]': row[3] }

对每一行进行赋值,但将创建的所有漂亮字典都赋给同一个变量values。当然,最后只有最后一行在values中。你知道吗

可以使用列表编辑器创建值列表:

values = [ { '[type]': row[0],
             '[model]': row[1],
             '[name]': row[2],
             '[host]': row[3] } for row in read ]

这并不能解决所有问题(为了了解更多信息,我们需要您首先解决缩进问题,以便了解您可以尝试什么),但这可能只是一个开始。你知道吗

相关问题 更多 >