Python 使用csv模块中的writerow写入第一个之后开始的列?

Python 使用csv模块中的writerow写入第一个之后开始的列?,python,csv,Python,Csv,我是python新手,正在开发一个实用程序来准备一些数据,以便在R中进行分析。到目前为止,该实用程序正在读取两个csvfiles,解析TLD和SLD的URL,然后将它们从转置列表写入csv。然后我需要将csv文件的其他列从“colrdr”直接复制到读卡器中,作为第2-6列。我首先尝试了一些直接的解决方案,只是用与我以前在MasterList中编写的相同的方式从colrdr中编写,但这不起作用(看起来colrdr列根本没有被编写)。在阅读了更多的文档之后,我还尝试在为附加复制的列创建writer对

我是python新手,正在开发一个实用程序来准备一些数据,以便在R中进行分析。到目前为止,该实用程序正在读取两个csvfiles,解析TLD和SLD的URL,然后将它们从转置列表写入csv。然后我需要将csv文件的其他列从“colrdr”直接复制到读卡器中,作为第2-6列。我首先尝试了一些直接的解决方案,只是用与我以前在MasterList中编写的相同的方式从colrdr中编写,但这不起作用(看起来colrdr列根本没有被编写)。在阅读了更多的文档之后,我还尝试在为附加复制的列创建writer对象时使用append模式,但这也不起作用

以下是代码的相关部分:

这里是我将数据解析为TLD/SLD的地方

# Create a List for future frequency distribution
SLDList = list()
TLDList = list()
MasterList = [SLDList, TLDList]
for fl in infiles:
    with open(fl, 'r') as csvin:
        reader = csv.reader (csvin, delimiter = ',')
        reader.next()
        for row in reader:
            SLDList.append(gettld(row[urlcolumn]))
            TLDList.append(psl.get_public_suffix(row[urlcolumn]))
# Create a List of other columns of infiles
    with open(fl, 'r') as csvin:
        reader = csv.reader (csvin, delimiter = ',')
        colrdr.append(zip(*(list(reader))))
在这里,我创建了一些列表,我使用zip将其转换为列,我将在代码的第二部分中从中编写

这是我写的部分,我还没有真正弄明白

with open(outfile, 'wb') as csvout:
    wtr = csv.writer (csvout, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
    for row in zip(*MasterList):
        wtr.writerow(row)
with open(outfile, 'a') as csvout:
    wtr = csv.writer (csvout, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
    for row in colrdr:
        wtr.writerow(row)
第一部分很好。第二部分没有做我认为它应该做的事情,不幸的是它甚至不会覆盖前两个文件,就好像它只是被解释器忽略了一样,我不太明白为什么

任何帮助都将不胜感激,谢谢

编辑:我不能给出实际的示例,但输入csvfiles是来自不同来源的文件,它们都具有相同的格式

URL、注册器、主机、ASN

newrows = list()
for fl in infiles:
    with open(fl, 'rb') as csvin:
        reader = csv.reader(csvin, delimiter=',')
        reader.next() # skip header
        for row in reader:
            sld = gettld(row[urlcolumn])
            tld = psl.get_public_suffix(row[urlcolumn])
            newrows.append([sld, tld] + row[1:]) # row[1:] is everything but the first

with open(outfile, 'wb') as csvout:
    wtr = csv.writer(csvout, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    wtr.writerow(["TLD", "SLD", "Registrar", "Host", "ASN"]) # write header
    wtr.writerows(newrows)
输出应该是一个文件,该文件结合了所有其他文件并具有相同的格式


TLD、SLD、注册商、主机、ASN能否提供输入csv和所需输出csv的示例?编辑了大量描述,这是一个很好的答案。这确实清理了代码,并向我展示了一些我自己没有想到的技巧——喜欢这里行的构造方式,zip()是多余的!当我得到代表时会投票。
newrows = list()
for fl in infiles:
    with open(fl, 'rb') as csvin:
        reader = csv.reader(csvin, delimiter=',')
        reader.next() # skip header
        for row in reader:
            sld = gettld(row[urlcolumn])
            tld = psl.get_public_suffix(row[urlcolumn])
            newrows.append([sld, tld] + row[1:]) # row[1:] is everything but the first

with open(outfile, 'wb') as csvout:
    wtr = csv.writer(csvout, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    wtr.writerow(["TLD", "SLD", "Registrar", "Host", "ASN"]) # write header
    wtr.writerows(newrows)