我想在python中编辑文本文件中的一行。
我有一个文本文件
name:
address:
age:
我需要将内容添加到上述文件的某些特定文件中。基本上填补了一些领域。
例如: 输出应为
name:
address:xxx
age:20
答案 0 :(得分:2)
我通常使用“ xreadlines()”来操纵文本文件(例如1GB文件)。 例如,如果我想将所有日期都移到行首,则下面的示例显示Python代码。
$ Name1
名称1 xx xx
日期水类别
19620701 100 a1
19630801 200 b1
19630901 150 c1
$ Name2
名称2 xx xx
日期水类别
19620701 200 a2
19630801 100 b2
19630901 300 c2
...
outFile:Outfile.txt。即使有了大量的txt文件,该程序也只需20秒即可完成运行。
名称1 名称1 xx xx日期
水类别
19620601 100 a1
19630701 200 b1
19630801 150 c1
名称2
名称2 xx xx
日期水类别
19620601 200 a2
19630701 100 b2
19630801 300 c2
...
Python代码:
inputFile=open('inputfile.txt','w')
OutFile=open('Outfile.txt'+,'w')
date0=date_init='19620601'
lines1=open(inputFile,'r').xreadlines()
for line in lines1:
line_date=line[0:8] #Take the 1st 8 char,'19620701'
if line_date.isdigit():
OutFile.write(date0+line[8:])
date0=line_date
else:
date0=date_init #Start from the first date
OutFile.write(line)
open(inputFile,'r').close()
OutFile.close()
答案 1 :(得分:0)
我喜欢使用fileinput
模块来编辑文件,如下所示:
import { OnInit } from "@angular/core";
import { BreadcrumbService } from '../../common/breadcrumb.service';
import { MenuModule, MenuItem } from 'primeng/primeng';
@Component({
selector: 'my-product.component',
templateUrl: './my-product.component.html',
})
export class MyProduct implements OnInit {
breadcrumbItems: MenuItem[] = [];
constructor(private breadcrumb: BreadcrumbService) {}
ngOnInit() {
this.breadcrumbItems.push({label:'Products'});
this.breadcrumbItems.push({label:'Category-C', routerLink: ['/products/category-c']});
this.breadcrumbItems.push({label: 'My-Product'});
this.breadcrumb.setBreadcrumb(this.breadcrumbItems);
}
}
只需将文件名作为参数传递给python命令,例如:
import fileinput
import sys
for line in fileinput.input(inplace=True):
# Whatever is written to stdout or with print replaces
# the current line
if line.startswith("address:"):
print("address:xxx")
elif line.startswith("age:"):
print("age:20")
else:
sys.stdout.write(line)