2013-10-05 66 views
2

我有一組數字(NDC - 藥物數字),其中有一個-。我正在嘗試讀取文件,刪除-並將數字寫入新文件。任何幫助,這將不勝感激。使用Py 2.7Python讀取文件,查找字符串並刪除字符

1. 68817-0134-50 
2. 68817-0134-50 
3. 68817-0134-50 

問題是連字符不總是在相同的位置。

1. 8290-033010 

它改變,並且可以在任何位置

with open('c:\NDCHypen.txt', 'r') as infile, 
    open('c:\NDCOnly.txt', 'w') as outfile: 
    replace("-", "") 
+0

你在替換什麼?你必須在'infile'上添加一個循環。 – 2013-10-05 19:06:55

回答

8
with open(r'c:\NDCHypen.txt', 'r') as infile, 
    open(r'c:\NDCOnly.txt', 'w') as outfile: 
    data = infile.read() 
    data = data.replace("-", "") 
    outfile.write(data) 

爲了防止行結束的('\r\n'\n'之間例如)轉換,以二進制方式打開這兩個文件:通過'rb''wb'作爲開第第2位arg。

+0

謝謝!你節省了我一些時間。 – Shaji

5

您可以用shell腳本這將是必須比Python實現更快容易做到這一點。除非您有更多的腳本,否則您應該使用shell腳本版本。

然而,與Python這將是:

with open('c:\NDCHypen.txt', 'r') as infile, open('c:\NDCOnly.txt', 'w') as outfile: 
    temp = infile.read().replace("-", "") 
    outfile.write(temp) 
+0

爲什麼選擇倒票? – neeagl

+0

不確定誰和爲什麼負面;但是這也像魅力一樣。謝謝! – Shaji