将CSV从一列更改为多列

时间:2018-07-20 15:26:55

标签: python csv

我正在尝试编写将带有for循环的代码馈入csv的项目。我能够将其写入csv,但是它会将所有内容都放入一个单独的列中,例如... The output of my code。我使用以下代码实现了这一点:

workspace = arcpy.mapping.MapDocument("CURRENT")

with open (arcpy.GetParameterAsText(0),"wb") as csv_file:
writer = csv.writer(csv_file, delimiter = ',')
for textElement in arcpy.mapping.ListLayoutElements(workspace, "TEXT_ELEMENT","elem*"):
    writer.writerow([textElement.name],)
    writer.writerow([textElement.text],)

我遇到的问题是,我想将“ elem”的每个新实例推送到新列中。如果有人可以帮助我编写一些代码来创建看起来像这样的csv ... desired csv,我将不胜感激。

3 个答案:

答案 0 :(得分:0)

您似乎需要执行以下操作:

writer.writerow([textElement.name,textElement.text])

如果您提供了我们可以运行的内容,将会更容易获得帮助。参见:https://stackoverflow.com/help/mcve

答案 1 :(得分:0)

我前一段时间找到了这个例子:

import csv

with open(newfilePath, "w") as f:
    writer = csv.writer(f)
    for row in rows:
        writer.writerow(row)

我在熊猫上工作很多,这对我来说非常有用!

答案 2 :(得分:0)

我创建了一个包含所有元素(elem1,elem2,elem3)和内容的字典。比起我只将字典写到csv中,而不是写每个单独的元素和内容。我使用了这段代码:

dic = {}
workspace = arcpy.mapping.MapDocument(r"path.mxd")

for textElement in arcpy.mapping.ListLayoutElements(workspace, "TEXT_ELEMENT", "elem*"):
    name = ''.join(textElement.name)
    content = ''.join(textElement.text)

    dic[str(name)] = str(content)
print dic

with open(r'test.csv', 'wb') as csv_file:
    writer = csv.writer(csv_file, delimiter = ',')
     for item in dic.items():
         writer.writerow(item)
相关问题