2015-11-03 159 views
1

我生成一個文件文本,你可以看到下面,我試圖壓制這個文件的最後一個字符「,」生成後,但我不能...Python - 刪除文本文件中的最後一個字符

*Nset, nset 
0570, 0571, 0572, 0573, 0574, 0575, 0576, 0577, 0578, 0579, 0579 
0580, 0581, 0582, 0583, 0584, 0585, 0586, 0587, 0588, 0589, 0589 
0590, 0591, 

我已經在堆棧中發現這樣的代碼,但是,它不工作...

import sys 
with open(sys.argv[1]) as f, open('out.txt', 'w') as out: 
    for line in f: 
     out.write(line.split()[-1]+'\n') 

----編輯LATER ----

我的代碼生成文件文字:

fichier_write.write("*Nset,") 
fichier_write.write("\n") 
compt = 0 
for i in range(0,node_label.size): 
    if Eleme_CI[i]!=0: 
     fichier_write.write("%.4i, "%(Eleme_CI[i])), 
     compt = compt + 1 
    if compt == 10: 
     fichier_write.write("%.4i"%(Eleme_CI[i])), 
     fichier_write.write("\n") 
     compt = 0 

fichier_write.close() 
+0

試試這個正則表達式:'/([,])$ /' – Onilol

+1

向我們展示您用於生成線條的代碼。 –

+0

我在哪裏可以試試?對不起,我是新手,在文本文件上工作... – user3601754

回答

2
import re 
# get text into a string \Z is the end of a string in regex 
with open('data') as f: 
    text = f.read() 

text = re.sub(r'.\Z',r'',text) 

print(text) 

Money amount left 39.0 
*Nset, nset 
0570, 0571, 0572, 0573, 0574, 0575, 0576, 0577, 0578, 0579, 0579 
0580, 0581, 0582, 0583, 0584, 0585, 0586, 0587, 0588, 0589, 0589 
0590, 0591 
1

當你產生輸出試試這個:

for i in range(0,node_label.size): 
    if compt == 10 or i == node_label.size: 
     fichier_write.write("%.4i"%(Eleme_CI[i])), 
     fichier_write.write("\n") 
     compt = 0 
    if Eleme_CI[i]!=0: 
     fichier_write.write("%.4i, "%(Eleme_CI[i])), 
     compt = compt + 1 

我加了一下,第二if語句和我交換的順序。如果這是連續的第10個數字,或者它是最後一個數字,則不要打印「,」。我切換了訂單,以便首先檢查。

相關問題