我有一个非常大的文本文件,我希望能够获得一些代码。第一行是标识符,后跟许多行(不同行中的数字),如下例所示:
示例:
fixedStep ch=GL000219.1 start=52818 step=1
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
fixedStep ch=GL000219.1 start=52959 step=1
1.000000
1.000000
1.000000
fixedStep ch=M start=52959 step=1
1.000000
1.000000
这一行是标识符:fixedStep ch=GL000219.1 start=52818 step=1
我想过滤掉包含“ch=GL000219.1
”和以下行(数字)的所有标识符行,并在其下面保留其他标识符和相应的行(数字)。喜欢这个输出:
fixedStep ch=M start=52959 step=1
1.000000
1.000000
你知道如何在python中做到这一点吗?
答案 0 :(得分:1)
您可以通过列表检查文件到list
和loop
,检查是否符合conditions
来写入文件。例如:
with open('test.txt', 'r') as f:
with open('test2.txt', 'w') as w:
data = f.read().splitlines()
for i in xrange(len(data)):
if data[i].startswith('fixedStep') and 'ch=GL000219.1' not in data[i]:
w.write(data[i] + '\n')
for t in xrange(i+1, len(data)):
if data[t].startswith('fixedStep') is False:
w.write(data[t] + '\n')
else:
break
输出:
fixedStep ch=M start=52959 step=1
1.000000
1.000000
答案 1 :(得分:0)
如果它是一个大文件,处理它可能会更有效率而不将其全部读入内存:
changeEmailAddress(user, newEmail) {
new Promise((resolve, reject) => {
user.setEmail(newEmail);
userRepository.saveUser(user).then(() => {
return resolve();
}).catch(e => {
return reject(e);
});
}
);
}