我得到了一个列表,如下所示:
['192.168.0.1 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:42','10.60.37.2 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:41','192.168.0.240 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:40']
当我导出到Excel时,每个块都在不同的行中,这很好,但都在同一列上,我希望在第1列中有地址,切换第2列等
Excel column 1
Excel row1: 192.168.0.1 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:42
Excel row2: 10.60.37.2 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:41
Excel row3 :192.168.0.240 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:40
我想要这个
exlcol1 exlcol2 exl.col3 exl.col4 exl.col5 exl.col6
exlrow1: 192.168.0.1 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:42
exlrow2: 10.60.37.2 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:41
exlrow3 :192.168.0.240 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:40
我试着把它导出到csv,但它说wtr.writerows(row)
必须是类似byte.object
的,然后我试着将列表更改为字符串,将其更改为byte.object,但它表示我的wtr.writerows(row)
应该是可交互的。
这是我用来导出到csv 的代码
import csv
with open('test.csv', 'wb') as f:
wtr = csv.writer(f, delimiter= ',')
for row in data11parts1:
wtr.writerows(row)
with open('test.csv', 'r') as f:
for line in f:
print (line)
我倾向于将其导出到Excel,但我认为这可以帮助您更好地解释我的问题和我所拥有的数据类型。
只是想告诉你,我从这个附件中得到了我的数据11部分1:
for element in data2:
elementstring=''.join(element)
for element in res1:
elementstring5=''.join(element)
if elementstring in elementstring5:
with open(Sw1, 'r') as f3:
for line5 in f3:
if elementstring in line5:
print('managemnet-tool' + ' - ' + Sw1.rsplit('.txt',1)[0] + ' - ' + elementstring5.rsplit('-', 1)[0] + ' - ' + line5.rsplit('n', 1)[0])
data11.append(elementstring5.rsplit('-',1)[0] + ' ' + Sw1.rsplit('.txt',1)[0] + ' ' + line5.rsplit('n', 1)[0])
data13.append(str(line5.rsplit('n', 1)[0]))
exit
它会抱怨,因为您打开文件进行二进制写入。CSV编写很容易,将内部字符串拆分为列表(在空格处拆分(并编写:
data = ['192.168.0.1 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:42',
'10.60.37.2 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:41',
'192.168.0.240 switch1 ff:ff:ff:ff:ff:ff 657 dynamic port:40']
# split the strings into their columns
dp = [d.split() for d in data]
import csv
with open("data.txt","w", newline="") as f: # w not wb and supply newline
writer = csv.writer(f)
# write em all
writer.writerows(dp)
with open("data.txt") as f:
print(f.read())
文件内容:
192.168.0.1,switch1,ff:ff:ff:ff:ff:ff,657,dynamic,port:42
10.60.37.2,switch1,ff:ff:ff:ff:ff:ff,657,dynamic,port:41
192.168.0.240,switch1,ff:ff:ff:ff:ff:ff,657,dynamic,port:40
参见
- str.split((
- csv.writer((