我希望标题有意义。具体说明:
我正在使用csvtotable(https://github.com/vividvilla/csvtotable)从CSV生成HTML表。我已经通过pip进行安装,并且能够运行命令行命令:
csvtotable test1743.csv test1743.html
生成HTML页面。到目前为止一切都很好。
我想从已经编写的Python脚本中执行此操作,所以我听说子进程是执行此操作的方法。我查看了如何进行操作,并了解可以使用以下方法完成此操作:
subprocess.run('csvtotable test1743.csv test1743.html',shell=True)
所以我首先通过命令行对此进行了测试
python
从命令行然后运行
import subprocess
subprocess.run('csvtotable test1743.csv test1743.html',shell=True)
成功!有效。很棒。
但是,当我尝试从IDLE执行此操作时,它仅返回1。我检查了目录,认为那里可能缺少csv,但仍然无法正常工作。
我误解了子流程的工作原理吗?
答案 0 :(得分:0)
通过找到一种无需子进程即可调用函数的方法来解决。我认为这个问题可能与通过python执行时未设置默认参数有关,因此为什么下面我必须指定这么多参数。
代码:
from csvtotable import convert
content = convert.convert("C:\\Users\\admin\\Google Drive\\test1743.csv",delimiter=",",quotechar='"',display_length=-1,overwrite=False,serve=False,pagination=True,virtual_scroll=1000, no_header=False, export=True, export_options=["copy","csv","json","print"])
convert.save("C:\\Users\\admin\\Google Drive\\test1743.html",content)
请注意,必须在参数名称中带有-
的地方更改参数名称。我只是更改了任何实例在convert.py中从display-length
到display_length