2011-09-08 78 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