2013-04-07 154 views
0

我想替换我的文本文件中的某一行,该怎么做?这里是文本文件:替换python文本文件中的行

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 

这是我到目前为止已经完成,但这只在后面

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') 

我想编辑的第一线,这是锐步111添加一行,11,2到锐步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 2013-04-07 06:37:10

+0

首先,您只能用逗号分割,而模型与空格分开。我先解决这个问题。为什么不先尝试打印(值),看看有什么实际内容。然后它更容易从那里继续.. – kramer65 2013-04-07 06:38:15

+0

它只在文本文件的末尾添加一行:(哦,型号是锐步111不只是锐步 – user2253899 2013-04-07 06:38:43

回答

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 2013-04-07 06:53:43

+0

是的,您将在新文件中存储所有数据。还有一些有效的读写方法,但取决于需求,例如文件的大小。 – 2013-04-07 06:55:25