2013-04-07 7 views
0

내 텍스트 파일의 특정 줄을 바꾸려고합니다. 어떻게합니까? 이것은 내가 지금까지 한 일이다파이썬 텍스트 파일의 줄 바꾸기

Description,Shoe Size,Quantity 
Reebok 111,11,2 
Reebok 111,12,4 
Reebok 111,9,10 
Reebok 1301,6,4 
Reebok 1301,7,4 
Reebok 1301,8,4 
Reebok 1301,9,4 
Reebok 1301,10,40 
Reebok A55,8,7 
Reebok A55,9,8 
Reebok A55,10,41 
Asics 193ABC,10,20 
Asics 193ABC,12,4 
Asics 193ABC,9,10 
Asics 293BC,11,2 
Asics 293BC,12,42 
Asics 293BC,9,100 
Nike N1,6,6 
Nike N1,7,4 
Nike N1,8,2 
Nike N1,9,4 
Nike N1,10,40 
Mizuno P1039,4,12 
Mizuno P1039,7,9 
Mizuno P1039,8,2 
Mizuno P1039,19,8 
Mizuno P1039,20,4 

Flag for copyright 

그러나 이것은 단지 내가 리복 (111) 첫 번째 라인을 편집 할 다시

def modifyQty(dbfilename,modelname,size,newcount): 
    o=open(dbfilename,'a') 
    dbfilename=open(dbfilename,'r')#opendatafile for read and reassign 
    for line in dbfilename: 
     values=line.split(',')#split by comma 
     if values[0]==modelname and values[1]==size: 
      line=line.replace(values[2],newcount) 
      o.write(line+'\n') 
    o.close() 

modifyQty('shoes.txt','Reebok 111','11','1') 

에 줄을 추가 : 다음은 텍스트 파일입니다 , 11, 2를 Reebok 111, 11, 1에 넣고 일치하는 모델과 크기를 찾고 수량 만 변경합니다. 여기


내가 무슨 짓을

Reebok 111, 11, 1 

감사

과는 shoes.txt의 편집 된 버전

def modifyQty(dbfilename,modelname,size,newcount): 
    o = open(dbfilename, 'r') 
    new_file = open('shoestextcopy.txt', 'w') #opens lol file 
    data = o.readlines() 
    for line in data: 
     values = line.split(',') # split by comma 
     if values[0] == modelname and values[1] == size: 
      line = line.replace(values[2], newcount) 
     new_file.write(line) 
    o.close() 
    new_file.close() 
modifyQty('shoes.txt','Reebok 111','11','100000000 \n') 

감사에 대한 새 텍스트 파일을 만듭니다 : 그래서 원하는 출력은 모든 도움을 받으려면

+0

문제가 해결되지 않는 이유는 무엇입니까? – Antimony

+0

우선, 쉼표로만 구분됩니다. 반면 모델은 공백으로 숫자와 구분됩니다. 먼저 고쳐 줘. 인쇄물 (값)을 먼저 시도해 실제로 거기에 무엇이 있는지보십시오. 그럼 거기에서 진행하는 것이 더 쉽습니다. – kramer65

+0

그것은 단지 텍스트 파일의 끝에 라인을 추가합니다 :(아, 그리고 모델 이름 Reebok 111 Reebok가 아니라 – user2253899

답변

0

글쓰기를 위해 새 파일을 열어 보겠습니다 :

def modifyQty(dbfilename,modelname,size,newcount): 
    o = open(dbfilename, 'r') 
    new_file = open('abc.txt', 'w') 
    data = o.readlines() 
    for line in data: 
     values = line.split().split(',') # split by comma 
     if values[0] == modelname and values[1] == size: 
      line = line.replace(values[2], newcount) 
     new_file.write(line + '\n') 
    o.close() 
    new_file.close() 

modifyQty('shoes.txt','Reebok 111','11','1') 
+0

그래서 글 쓰는 것이 좋습니다. 새 파일, 거기에 다른 모든 데이터가 필요합니다. – user2253899

+0

예. 새 파일에 모든 데이터가 있습니다. 읽기 및 쓰기에도 효율적인 방법이 있지만 요구 사항에 따라 파일 크기가 다릅니다. –