小编Jag*_*agu的帖子

在Python中进行XML转换的现代方法是什么?

我需要在Python中的一些非常复杂的XML和平面文件格式之间进行双向转换.我已经过时了,不知道人们在2011年的未来一年中如何解决这个问题.

我已经回到了各种Python XML库的最新版本,但是自从我上次在XSLT中度过了8年之后,我在谷歌搜索后仍然很惊讶,这仍然很常见.

那么你如何进行复杂的XML数据转换呢?

我想在Python中这样做,因为文档不是直接映射,并且需要一些处理和计算.但我仍然希望尽可能多地传递给规则引擎.

编辑:要明确我对技术感兴趣比特定的库或工具更多,但请发布它们.我在努力避免使用这里的单词模式,但这肯定是一个常见的问题.

编辑2:我仍然认为对于一般技术没有任何好的答案,但我使用Bots EDI框架进行文档翻译时解决了原来的问题.它非常注重EDI,但可用于通用翻译.虽然这是一个重量级的解决方案.

python xml xslt document transform

13
推荐指数
1
解决办法
4071
查看次数

是否有人使用Python进行GS1 XML和AS2 EDI?

我正在帮助一些制造公司使用GS1 XML规范链接他们的EDI系统(这是一个国际规范,公司可以传递诸如采购订单,发票,条形码等内容.http://en.wikipedia.org/wiki/ GS1).

有很多Big Iron解决方案,许多Java和C#解决方案,甚至还有一些PHP.但是我没有在Python中找到任何项目.

你试过这个吗,你能提供任何战争故事吗?

python edi

6
推荐指数
2
解决办法
3737
查看次数

分拣目录:如何不拾取仍在写入的文件?

我有一个Python脚本,它检查拾取目录并处理它找到的任何文件,然后删除它们.

如何确保不会删除仍然由删除该目录中的文件的进程写入的文件?

我的测试用例非常简单.我将300MB的文件复制粘贴到拾取目录中,并且脚本经常会抓取仍在写入的文件.它仅对部分文件进行操作,然后将其删除.这会触发操作系统中的文件操作错误,因为它写入的文件消失了.

  • 在打开/处理/删除它之前,我尝试获取文件锁(使用FileLock模块).但这没有帮助.

  • 我已经考虑过检查文件上的修改时间,以避免在X秒之内发生任何事情.但这似乎很笨拙.

我的测试是在OSX上,但我正在尝试找到一个适用于主要平台的解决方案.

我在这里看到一个类似的问题(如何检查文件是否仍在写入?),但没有明确的解决方案.

谢谢

python file-io batch-processing

6
推荐指数
1
解决办法
1315
查看次数

Mutt宏:如何在一个宏中设置然后使用变量?

我正在尝试编写一个设置变量的小mutt宏,然后在同一个宏中重用该变量.

我真正想要做的是在To:地址中构建一个消息和sub(稍后我将动态填充).

这是我的.muttrc

set my_to = "bobby@test.com"
macro index E "<enter-command> set my_to = barry@test.com<enter>mn\$my_to"
Run Code Online (Sandbox Code Playgroud)

我的问题是变量my_to永远不会从bobby @ ...变为barry @ ...

我相信它与配置解析期间解释的$有关,手册建议使用转义.但是,如果我这样做,只显示文字"$ my_to".

我究竟做错了什么?

更新: 我仍然无法像上面那样设置/获取变量,但是我错过了一个明显的Mutt解决方案来解决我的问题ESC -e将根据现有的情况创建一个新的电子邮件.类似于Thunderbird中的edit-as-new.

macros mutt

6
推荐指数
0
解决办法
916
查看次数

如何使用 EBNF 语法解析注释

在为语言解析器定义语法时,您如何处理诸如注释(例如 /* .... */)之类的可能出现文本中的任何点的事情?

当事物结构化时,从标签中的标签构建语法似乎很有效,但注释似乎会抛出一切。

您是否只需分两步解析文本?首先删除这些项目,然后拆开代码的实际结构?

谢谢

parsing ebnf context-free-grammar

5
推荐指数
1
解决办法
1190
查看次数

preg_match_all如何获得*所有*组合?即使是重叠的

PHP正则表达式函数中是否有一种方法可以获得正则表达式的所有可能匹配, 即使这些匹配重叠

例如,获取所有3位数的子字符串'/ [\ d] {3} /'...

你可能会得到:

"123456"=> ['123','234','345','456']

但是preg_match_all()只返回

['123','456']

这是因为它在匹配的子字符串之后再次开始搜索(如文档中所述):

"在找到第一场比赛后,随后的搜索将在最后一场比赛结束时继续进行."

没有编写自定义解析器,有没有办法解决这个问题?

php regex

4
推荐指数
1
解决办法
909
查看次数