Python 搜索和替换词典中的通配符

Python 搜索和替换词典中的通配符,python,dictionary,wildcard,pickle,Python,Dictionary,Wildcard,Pickle,我对Python相当陌生,所以如果我的术语有误,我道歉。我正在运行Python 2.6.5,我不确定是否要更新到3.0,因为Python最初是用我的空间分析软件下载的。 我正在编写一个程序来搜索和替换多个逗号分隔的文本文件中的列标题。因为有上百个标题,而且所有文件中的标题都是相同的,所以我决定创建一个字典并“pickle”来保存所有的替换内容(这是从阅读其他文章中得到的想法)。当我注意到文本文件列标题中有选项卡和空格时,我的问题就出现了,例如: ..."Prev Roll #: ","P

我对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", 
谢谢你的意见

  • 使用模块解析和写入逗号分隔的数据
  • 使用string方法删除不需要的空格和制表符
  • 不要在dict密钥名称中包含
    *
    。他们不会像你一样全球化 希望它们只是表示字面上的
    *
    s
  • 用它代替泡菜可能更好。JSON是 可读性强,独立于编程语言。泡菜可能有 甚至在不同版本的Python中也存在问题

  • 谢谢我正在尝试你的答案!要学的东西很多!