2011-07-10 54 views
-3

我正在創建刪除函數。使用python從.txt文件中刪除匹配行

我customerlist.txt

[1. 'Yuvin Ng', 'Columbia College', 778] 
[2, 'Ali', 'Douiglas College', 77238] 
[3, 'Nancy', 'Douglas College', 7783390222] 

如果我想刪除Yuvin Ng和它的整條生產線,我該怎麼辦呢?

我的計劃是創建一個空列表,它會將整個事件返回爲「」並保存回.txt文件中。

我的代碼

def deletecustomer(file_name,name): 
    f=open(file_name,"r+") 
    c="" 
    for line in f: 
     if name in line: 
     - - - -- - -- - -- #how can i make it read every line at position list[0] from list 
    - ------ -- - -- - - -#take the selected list of the and erase by replacing the whole list with " " 

我不能想出什麼辦法來解決這個問題。

+2

「你」的代碼看起來很像[克里斯·格雷格的代碼(HTTP://計算器。 COM /問題/ 6638595 /怎麼辦-I-MAKE-A-while循環那麼它,讀透,每單線路輸入-TXT文件-BEF/6638614#6638614)。請不要期望StackOverflow *爲你做功課! – Johnsyweb

+2

@Yuvin嗨,歡迎來到堆棧溢出,但請注意,顯而易見的作業問題總是在這裏對此不屑一顧。不要誤解我的意思,如果你正在做家庭作業,並且被困住了,我們很樂意讓你用SO來獲得幫助,但是你似乎正在解決更大的問題,並且正在問路上的每一步。在這一點上,我的建議是與同學交談,並從他們那裏獲得幫助。如果*你*在這些任務中遇到問題,毫無疑問,你班上的其他人也會這樣。如果您繼續在路上留下問題,其中一些*將*關閉。 –

回答

1

如果我理解正確的,你想返回該文件的內容減去刪除線

ret = [] 
for line in f: 
    if name != line[1]: 
     ret.append(line); 
return ret 
1
new_file = open(nf,'w') 
with open(fn) as f: 
    for l in f: 
     if not 'Yuvin Ng' in l: 
      new_file.write(l)