更换fi中的整条线路

2024-09-30 18:13:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含如下数据的.txt文件:

0,Rent1,Expense,16/02/2010,1,4000,4000  
0,Car Loan1,Expense,16/02/2010,2,4500,9000  
0,Flat Loan1,Expense,16/02/2010,2,4000,8000  
0,Rent2,Expense,16/02/2010,1,4000,4000  
0,Car Loan2,Expense,16/02/2010,2,4500,9000  
0,Flat Loan2,Expense,16/02/2010,2,4000,8000 

现在我想用以下新项目替换第4行:

0,贷款,费用,2010年2月19日,2500010000

我使用以下代码:

^{pr2}$

但它显示的文件如下:

0,Rent1,Expense,16/02/2010,1,4000,4000  
0,Car Loan1,Expense,16/02/2010,2,4500,9000  
0,Flat Loan1,Expense,16/02/2010,2,4000,8000  
0,Loan,Expense,19/02/2010,2,5000,100000,Car Loan2,Expense,16/02/2010,2,4500,9000
0,Flat Loan2,Expense,16/02/2010,2,4000,8000 

我怎么解决这个问题?在


Tags: 文件数据项目代码txtcar费用flat
3条回答

放一条新的线

newline='0,Loan,Expense,19/02/2010,2,5000,10000'
lnum=1
for line in fileinput.FileInput("sample.txt",inplace=1):
    if lnum==4:
        result = newline+"\n"
    else:
        result=line
    lnum=lnum+1    
    sys.stdout.write(result)

或者您可以将newline变量声明为

^{pr2}$

使用枚举更少的无代码错误可能性

newline = '0,Loan,Expense,19/02/2010,2,5000,10000\n'
for lnum, line in enumerate(fileinput.FileInput("sample.txt",inplace=1)):
    if lnum == 4:
        line = newline
sys.stdout.write(line)

替换:

result = newline #you lose the newline here

有:

^{pr2}$

相关问题 更多 >