【问题标题】:How to get CSV to work in in RevitPythonShell?如何让 CSV 在 RevitPythonShell 中工作?
【发布时间】:2019-11-06 14:11:30
【问题描述】:

有没有人想出如何让 CSV(或任何其他包)在 RevitPythonShell 中工作?我只能从Interop 获取 Excel 工作。

当我尝试在 RPS 中运行 csv 时,终端执行并且没有显示错误或任何类型的反馈,并且文件也没有创建。

这是我试图运行的基本代码,我相信它来自一个关于 CSV 的教程。

with open('mycsv2.csv', 'w') as f:
     fieldnames = ['column1', 'column2', 'column3']
     thewriter = csv.DictWriter(f, fieldnames=fieldnames)
     thewriter.writeheader()
     for i in range(1, 10):
         thewriter.writerow({'column1':'one', 'column2':'two', 'column3':'three'})

我发现 CSV 比 Interop Excel 更加用户友好和易于理解。我相信我已经在某处读过它的可行性,但我现在当然找不到源。

感谢所有帮助、提示或技巧。

【问题讨论】:

  • 我可以运行您的代码并且它运行良好——只要我提供open 函数的完整路径而不仅仅是文件名。这有帮助吗?
  • 我从未尝试打开现有文件。我会试一试的。你能打开一个新文件并执行代码吗?当我在任何其他 IDE 或通过 python IDLE 甚至通过命令行编写时,它可以工作,但不能通过 RPS 工作。
  • 当您打开带有w 标签的文件时,如果文件不存在,它会创建该文件——这就是我所做的。
  • 打开函数的完整路径是什么样的?如果我能对它进行逆向工程,这听起来可能会对我有所帮助

标签: csv revit-api revit revitpythonshell


【解决方案1】:

我可以通过向 open 函数提供完整路径名来使其工作,所以它看起来像(显示我的文档文件夹的完整路径):

import csv
with open(r'C:\Users\callum\Documents\mycsv2.csv', 'w') as f:
     fieldnames = ['column1', 'column2', 'column3']
     thewriter = csv.DictWriter(f, fieldnames=fieldnames)
     thewriter.writeheader()
     for i in range(1, 10):
         thewriter.writerow({'column1':'one', 'column2':'two', 'column3':'three'})

让我知道这是否有效!

【讨论】:

  • 它有效!它会在每行之间创建空白行,但我会接受。文件路径中的 r' 是做什么用的?对我来说没有必要
  • 我从传奇的 Daren Thomas 那里了解到 - 它的意思是“原始字符串”,因此您可以输入文件路径而无需配对反斜杠。另一种方法是写'C:\\Users\\callum\\Documents\\mycsv2.csv'
猜你喜欢
  • 1970-01-01
  • 2019-05-06
  • 2017-04-01
  • 2015-11-25
  • 1970-01-01
  • 2015-11-04
  • 2020-04-13
  • 2011-12-11
  • 2010-12-17
相关资源
最近更新 更多