Print命令显示如下内容(我有3行,但这只是示例的一部分):
O;4;Line[63];CPUA.DB1610.4122,X1;RW
V;5;Enable_maintenance_mode;;
V;5;Maintenance_start_motor;CPUA.DB1610.4124,X0;RW
O;4;Line[64];CPUA.DB1610.4124,X1;RW
我试图保存在csv文件相同的内容,但在csv我只有一行和这种格式。问题是,如何保存到csv文件保存打印显示什么?你知道吗
O,;,4,;,L,i,n,e,[,6,4,],;,C,P,U,A,.,D,B,1,6,1,0,.,4,1,2,4,|,|,X,1,;,R,W
他们只在csv文件中保存了我一行
这是我的密码:
for i in range((len(result)-1)):
print(str(result[i][0]) + ';' + str(result[i][1]) + ';' + result[i][2] + ';' + str(adress[i]))
with open(source_file[:-4] + '_test.csv', "w") as f:
writer = csv.writer(f)
writer.writerow(str(result[i][0]) + ';' + str(result[i][1]) + ';' + result[i][2] + ';' + str(adress[i]))
我不知道我做错了什么。有人能帮我解决这个问题吗?你知道吗
结果包含:
['V', '5', 'Enable_maintenance_mode', "S7:[CPUA]DB1610', 'X4124.0", 'B', 'RW', '0', "0']"]
['V', '5', 'Maintenance_start_motor', "S7:[CPUA]DB1610', 'X4124.1", 'B', 'RW', '0', "0']"]
['O', '4', 'Line[64]', '', '', "']"]
['V', '5', 'Enable_maintenance_mode', "S7:[CPUA]DB1610', 'X4126.0", 'B', 'RW', '0', "0']"]
@Martin Evans你的例子看起来真不错。但我只需要从结果行的一部分,并保存为csv。 我能做出这样的想法吗?你知道吗
csv_output = csv.writer(f_output, lineterminator='\n')
for line in result:
#csv_output.writerow(line)
csv_output.writerow(str(result[line][0]) + ';' + str(result[line][1]) + ';' + result[line][2] + ';' + str(adress[line]))
但是我有一个错误:TypeError:列表索引必须是整数,而不是list
csv库的设计目的是获取列条目列表,并通过添加必要的分隔符将其自动转换为整个csv行。print语句通过在每个列条目之间附加
;
来模拟这种情况。您可以指定创建csv.writer
时要使用的分隔符,在您的示例中是;
:在python3.x中使用
csv.writer()
时,应该始终使用w
打开文件并设置newline=''
。另外,不使用range()
和索引直接遍历result
条目也更容易。由于您似乎有两个等长的列表,因此可以在迭代时使用zip
从每个列表中获得一个元素。你知道吗这将为您提供如下输出文件:
注意,您还没有提供
address
的示例,因此这是基于您的示例输出。你知道吗相关问题 更多 >
编程相关推荐