2011-09-08 82 views
0

我对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", 

感谢您的输入样本!

回答

1
  1. 使用csv模块来解析和写入以逗号分隔的数据。
  2. 使用字符串strip()方法删除不需要的空格和制表符。
  3. 请勿在您的词典关键词名称中包含*。他们不会像你所希望的那样持续下去。他们只代表文字*在那里。
  4. 这可能更好使用json而不是泡菜。 JSON是 人类可读的,独立于编程语言。即使在不同版本的Python中,Pickle也可能有 问题。
+0

谢谢!我正在尝试你的答案!很多学习要做! – MJN