首页 > 解决方案 > 将列数据从 csv 写入文本文件中的行/行

问题描述

我正在使用脚本读取 .csv 文件,读取特定列并将其写入 txt 文件,问题是,提取的数据以这种形式写入列中:

primary_channel
2
1
0
0
2
0
1
2
1

我需要它在一行中,像这样:

2,1,0,0,2,0,1,2,1

我的代码是下一个,

import sys
import csv
import copy
import os
import random
import fileinput
import sys, glob
from io import StringIO
from collections import OrderedDict
import sys
#scriptname,f1name,f2name=sys.argv

fieldnames=['node_code;node_type;wlan_code;destination_id;x(m);y(m);z(m);primary_channel;min_channel_allowed;max_channel_allowed;cw;cw_stage;tpc_min(dBm);tpc_default(dBm);tpc_max(dBm);cca_min(dBm);cca_default(dBm);cca_max(dBm);tx_antenna_gain;rx_antenna_gain;channel_bonding_model;modulation_default;central_freq (GHz);lambda;ieee_protocol;traffic_load(pkts/s)']

main={}
with open('nodos_cambiados_1.csv','r') as infile,open('lista.txt','w') as outfile:
     reader = csv.DictReader(infile,delimiter=";" )
     writer = csv.DictWriter(outfile,fieldnames=['primary_channel'],delimiter=",",extrasaction='ignore')
     writer.writeheader()
     for row in reader:
         next(reader) 
         for values in row:
             if row['node_type']=='0' in row:
                main.update({row['primary_channel']:()})

         writer.writerow(row)

我将非常感谢你能给我的帮助

标签: pythoncsv

解决方案


如果您只想在一行上写数字,使用 DictWriter 似乎过于复杂。我认为这样的事情就足够了:

with open('nodos_cambiados_1.csv','r') as infile,open('lista.txt','w') as outfile:
     reader = csv.DictReader(infile,delimiter=';')
     outfile.write(','.join(row.get('primary_channel') for row in reader))

推荐阅读