我正在尝试编写将带有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,我将不胜感激。
答案 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)