2016-03-24 214 views
0

我試圖從一個大型的300萬行文件中刪除字符串「IT \ ICCU \ LO1 \ 0834426」。但是,當我運行這個腳本時,它不會刪除字符串。
當我在Pycharm中編輯腳本時,字符串顯示爲綠色,但字符「\ 0」呈黑色。這是一個問題,因爲反斜槓是一個轉義字符?任何人有任何想法如何解決這個問題?Python rstrip反斜槓

with open(f_in, 'r') as fin: 
    with open(f_out, 'w') as fout: 
     for line in fin: 
      if line.rstrip("IT\ICCU\LO1\0834426"): 
       fout.write(line) 
+3

你想要一個原始字符串文字。但是請閱讀rstrip的文檔 - 即使使用正確轉義的字符串,它也不會做你認爲它的作用(它可以處理字符集,而不是後綴)。 – Cameron

+0

你想要做的是使用Re模塊並使用re.sub,你可以用「」替換該字符串,你應該沒問題。通讀重新模塊,這是很有幫助的。 – Jonathan

回答

2

什麼你要找的是replace()功能和使用原始字符串,像這樣:

with open(f_in, 'r') as fin: 
    with open(f_out, 'w') as fout: 
     for line in fin: 
      line = line.replace(r"IT\ICCU\LO1\0834426", ""): 
      fout.write(line) 
+0

大聲笑好回答:) ...(比我現在刪除的好多了) –

0

string.rstrip()用於從一個字符串的右端剝離空白字符。

改爲查看string.replace()。

0

我不認爲使用原始字符串是什麼OP要求:

line = "JJJJJJJJJJ\IT\ICCU\LO1\0834426\ZZZZZZZZZ" 
print line.replace(r"IT\ICCU\LO1\0834426",'') 
JJJJJJJJJJ\IT\ICCU\LO1834426\ZZZZZZZZZ 

print line.replace("IT\ICCU\LO1\0834426",'') 
JJJJJJJJJJ\\ZZZZZZZZZ 

使用line.replace()用繩子將達到預期的效果。
或者至少這是我的解釋。