2014-11-06 3 views
-4

파일이 100 개 있습니다.은 파이썬에서 파일의 레코드를 삭제합니다.

사용자가 입력 한대로 파일에서 일치하는 레코드가 있으면 해당 레코드 컨텐츠를 파일에서 삭제하고 싶습니다.

어떻게 이것을 파이썬으로 할 수 있습니까? 55로 시작 TXT 파일로부터 광고를 제거하는 예

+5

가 모든 콘텐츠를 삭제하거나 찾은 행만? 또한 시도해 보셨습니까? 그리고 이것을 성취하려는 계획은 무엇입니까? –

+0

방금 ​​찾은 행 –

답변

1
with open(your_f) as f: 
    lines = f.readlines() 
    for ind, line in enumerate(lines): 
     if your condition: # if line contains a match 
      lines[ind] ="" # set line to empty string 
    with open(your_f,"w") as f: # reopen with w to overwrite 
     f.writelines(lines) # write updated lines 

:

with open("in.txt") as f: 
    lines = f.readlines() 
    for ind, line in enumerate(lines): 
     if line.startswith("55"): 
      lines[ind] = "" 
    with open("in.txt","w") as f: 
     f.writelines(lines) 

입력 :

foo 
bar 
55 foobar 
44 foo 

출력 :

foo 
bar 
44 foo 
+0

대단히 감사합니다! –

관련 문제