scour可以很好地减少我使用matplotlib生成的SVG地图的大小。
但是,该文档仅描述了如何从CLI运行单个文件,标准:
scour -i input.svg -o output.svg
从Python脚本/我的Jupyter笔记本中运行它(在批处理模式下)的最佳方法是什么?
我成功地“创建”了下面的工作代码并优化了500个SVG让我满意。但我只是从testscour.py的位中复制了那些代码,我对此缺乏了解......
from scour.scour import makeWellFormed, parse_args, scourString, scourXmlFile, start, run
maps= os.listdir('C:\\Hugo\\Sites\\maps\\')
for m in maps[:]:
if afbeelding[-4:]=='.svg':
inputfile = open('C:\\Hugo\\Sites\\maps\\' + m, 'rb')
outputfile = open('C:\\Hugo\\Sites\\allecijfers\\static\\images\\maps\\' + m, 'wb')
start(options, inputfile, outputfile)
相关问题(试图学习):为了找到合适的可调用函数,分解像scour这样的模块的最佳方法是什么? (我不会在scour.py中找到函数start)或者我是否可以从上面的Python脚本调用CLI命令以便以批处理模式执行它?
答案 0 :(得分:1)
我喜欢您的问题,因为它向我指出了testscour.py,非常感谢。
也就是说,代码导入首先要搜索, 然后从您的地图文件夹中创建一个列表; 然后逐个浏览列表,如果它是svg,则使用“开始”方法调用搜索。
所以工件是
start(options, inputfile, outputfile)
请注意,它需要一个打开的文件处理程序,通常使用“ with”。
玩得开心
答案 1 :(得分:1)
要以编程方式使用 Scour,请先使用 PIP 安装它。
DECLARE @firstone INT;
DECLARE @secondone INT;
SELECT @firstone = count(*)
FROM dbo.PID_Components_PROCESS_LINES
WHERE ISOGEN_LINE_PROGRESS_ = 'C';
SELECT @secondone = count(*)
FROM dbo.PID_Components_PROCESS_LINES
WHERE PROJECT_NUMBER_ = 'PJ001234';
SELECT @firstone / @secondone AS resultthing
SELECT @firstone /CAST(@secondone AS DECIMAL (9,2))
然后将此添加到您的代码中(使用您喜欢的任何名称)。
pip install scour
使用 from scour.scour import start as scour, parse_args as scour_args, getInOut as scour_io
def scour_svg(infilename,outfilename):
options = scour_args()
options.infilename = infilename
options.outfilename = outfilename
// Set options here or accept defaults.
(input, output) = scour_io(options)
scour(options, input, output)
if __name__ == '__main__':
infilename = 'C:\\Users\\...\\svg_in.svg'
outfilename = 'C:\\Users\\...\\svg_scoured.svg'
scour_svg(infilename,outfilename)
print('The END')
函数读入 SVG 文件,对其进行搜索,然后将其写入文件。
可以按照上面提供的 scour_svg
和 infilename
相同的方式在代码中调整选项。参考:-
outfilename
。