使用 lxml 库我已经客观化了一些元素(下面的示例代码)
config = objectify.Element("config")
gui = objectify.Element("gui")
color = objectify.Element("color")
gui.append(color)
config.append(gui)
config.gui.color.active = "red"
config.gui.color.readonly = "black"
config.gui.color.match = "grey"
Run Code Online (Sandbox Code Playgroud)
结果是以下结构
config
config.gui
config.gui.color
config.gui.color.active
config.gui.color.readonly
config.gui.color.match
Run Code Online (Sandbox Code Playgroud)
我可以获得每个对象的完整路径
for element in config.iter():
print(element.getroottree().getpath(element))
Run Code Online (Sandbox Code Playgroud)
路径元素由斜杠分隔,但这不是问题。我不知道如何才能只获取路径的父部分,以便我可以使用 setattr 来更改给定元素的值
例如对于元素
config.gui.color.active
Run Code Online (Sandbox Code Playgroud)
我想输入命令
setattr(config.gui.color, 'active', 'something')
Run Code Online (Sandbox Code Playgroud)
但不知道如何获取完整路径的“父”部分。
这个错误有些奇怪。有时,带有 r 块的相同 rmd 文件运行不会出现问题,并且 knit 在“unnamed-chunk-”之后分配序列号,但有时 knit 会报告错误。
我找不到任何方法来确定该过程在什么情况下运行顺利以及何时产生错误。rmd 文件中的所有 r 块都没有名称/标签。
下面是命令日志,以防一切顺利,并且非标签块给出了序列号
outfile = c(outfile, knit("File1.rmd"))
processing file: File1.Rmd
|..... | 8%
ordinary text without R code
|........... | 17%
label: unnamed-chunk-1 (with options)
List of 1
$ echo: logi FALSE
|................ | 25%
inline R code fragments
|...................... | 33%
label: unnamed-chunk-2 (with options)
List of 4
$ echo : logi FALSE
$ connection: symbol db.conn
$ output.var: chr "db.data"
$ engine : chr "sql"
|........................... | …Run Code Online (Sandbox Code Playgroud)