【问题标题】:Wildcards in a Search and Replace Dictionary搜索和替换字典中的通配符
【发布时间】:2011-09-08 13:46:49
【问题描述】:

我对 Python 还很陌生,所以如果我的术语有误,我深表歉意。我正在运行 Python 2.6.5,我不确定是否要更新到 3.0,因为 Python 最初是通过我的空间分析软件下载的。 我正在编写一个程序来搜索和替换多个逗号分隔的文本文件中的列标题。由于有超过一百个标题并且它们在所有文件中都是相同的,我决定创建一个字典和“pickle”来保存所有替换(从阅读其他帖子中得到这个想法)。当我注意到文本文件列标题中有制表符和空格时,我的问题就出现了,例如:

    ..."Prev Roll #: ","Prev Prime/Sub","Frontage : ","Depth            : ","Area             : ","Unit of Measure  : ",...

所以我想为什么不在我的关键字末尾加上通配符,这样无论名称和冒号之间有多少空格,搜索都会匹配它。我正在尝试 * 通配符,但它不起作用,当我运行它时,没有匹配/替换。我是否正确使用了通配符?我想要做的甚至可能吗?还是我应该取消字典泡菜? 以下是我正在尝试做的示例

import cPickle as pickle

general_D = { ....
             "Prev Prime/Sub" : "PrvPrimeSub",
             "Frontage*" : "Frontage",
             "Depth*" : "Depth",
             "Area*" : "Area",
             "Unit of Measure*" : "UnitMeasure", 

感谢您的意见!

【问题讨论】:

    标签: python dictionary wildcard pickle


    【解决方案1】:
    1. 使用csv 模块解析和写入逗号分隔的数据。
    2. 使用字符串strip() 方法删除不需要的空格和制表符。
    3. 不要在您的字典键名中包含*。他们不会像你一样流行 希望。它们只是在那里代表文字*s。
    4. 使用json 代替pickle 可能更好。 JSON是 人类可读,独立于编程语言。泡菜可能有 即使在不同版本的 Python 中也会出现问题。

    【讨论】:

    • 谢谢!我正在尝试你的答案!很多学习要做!
    猜你喜欢
    • 2013-04-10
    • 2014-02-11
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 2020-01-21
    • 2013-10-17
    • 2017-10-14
    • 1970-01-01
    相关资源
    最近更新 更多