在後續有人幫我在這裏與昨天Lost in XML and Python我試圖比較兩個字符串。Python的XML CSV編碼和字符
- 字符串一個從XML文件
- 字符串二是從CSV讀讀文件
的問題是,這兩種存儲方式不一樣:
CSV FILE HAS : "‚"
XML FILE HAS : "‚"
但是,如果沒有「
比較時打印字符串表明我爲什麼不匹配:
這些都是它試圖匹配
FROM XML : ‚
FROM CSV : x82
這可能會發生的很多字符,那麼這個特殊的字符串。我的問題是我該如何解決這個問題?
- 讀取XML文件的方式不同嗎?
- 以不同方式讀取CSV文件?
- 比較前轉換存儲的字符串?
比較後,匹配的字符串需要存儲和打印回XML格式的字符串。
這裏是我正在打開,並在我的csv文件閱讀:
import csv
csvdata = csv.reader(open('csvsmall.csv'))
csvfile = open(csvinput, "rb")
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)
========================== == UPDATE ============================================
好的根據答覆。我認爲這將是最容易找到一種方法來轉義字符串轉換成CSV文件的版本在XML文件中
這將意味着轉換:
"," which looks like it is being read as x82 to "‚"
有沒有人有關於如何任何提示對存儲在字典中的csv的所有值執行此操作? :
filenameToLabel = {}
for l,f in (x.strip().split(';') for x in (csvfile.readlines())[1:]):
filenameToLabel[f] = l
&&部分似乎被正確處理,因爲當我打印出兩個字符串時,它們應該互相匹配,它會返回‚作爲XML文件中的字符串,x82作爲CSV文件中的字符串。 csv由另一個程序生成,我不知道它使用的編碼。但在編輯器中打開它會顯示「,」返回x82的位置。有沒有一種簡單的方法來獲得兩個文件在相同的編碼?最好是XML中的那個? – LessPythonic 2012-01-31 16:07:14