我有一个'test.txt'文件,其中包含:
(5 rows)
a
(7 rows)
b
我想删除该行,如果该行以'('字符开头。 我的代码在这里:
with open("test.txt", "r") as fin:
with open("result.txt", "w") as fout:
for line in fin:
if line.startswith('('):
fout.write(line.replace('(',''))
else:
fout.write(line)
但返回:
5 rows)
a
7 rows)
b
我想得到结果:
a
b
是否可以使用'starts.with'?
由于
答案 0 :(得分:1)
您替换一个字符并写下该行。
而不是,你做fout.write('\n')
写一个换行符
with open("test.txt", "r") as fin:
with open("result.txt", "w") as fout:
for line in fin:
if line.startswith('('):
fout.write('\n')
else:
fout.write(line)
答案 1 :(得分:1)
您只需要更改 行<{1}}开头的情况。我们要做的只是(
换行(write
)。我们不希望\n
任何事情,因为我们想完全摆脱这条线。
所以,这是完成的代码的样子:
replace
将with open("test.txt", "r") as fin:
with open("result.txt", "w") as fout:
for line in fin:
if line.startswith('('):
fout.write("\n")
else:
fout.write(line)
创建为:
result.txt
其中[empty line]
a
[empty line]
b
只代表一个空行但在此答案中更明显
答案 2 :(得分:1)
您可以使用以下步骤
获得所需的输出read
模式write
模式\n
关闭文件
f = open("test.txt","r")
lines = f.readlines()
f.close()
f = open("test.txt","w")
for line in lines:
if not line.startswith('('):
f.write(line)
else:
f.write('\n')
f.close()
答案 3 :(得分:1)
还可以使用系统命令处理文件。例如在Linux中:
import os
os.system("cat test.txt | sed 's/^(.*$//' > results.txt")
cat
读取infile,|
将输出通过管道传输到sed
,将(
开头的行替换为空白,最后>
重定向输出outfile。
答案 4 :(得分:0)
替代使用&#34; not&#34;:
with open("test.txt", "r") as fin:
with open("result.txt", "w") as fout:
for line in fin:
if not line.startswith('('):
fout.write(line + "\n")
答案 5 :(得分:0)
是的,可以使用.startswith()
方法执行您想要的操作。你的支票很好。当你找到引起麻烦的比赛时,你会做什么。
with open("test.txt", "r") as fin:
with open("result.txt", "w") as fout:
for line in fin:
if line.startswith('('):
fout.write('\n') # fout.write(line.replace('(',''))
else:
fout.write(line)
如果你想摆脱以&#39;开头的行(&#39;,只是不要把它们写到新文件中......写出一个空行(只是换行)取而代之的是。根据上面的描述,替换以&#39;开头的行(&#39;用空行似乎是你想要的。
如果您不想替换带有空行的&#39;(&#39;行,那么您的代码可能会更简单一些:
if line.startswith('('):
fout.write('\n') # fout.write(line.replace('(',''))
else:
fout.write(line)
可以
if not line.startswith('('):
fout.write(line)
答案 6 :(得分:0)
而不是fout.write(line.replace('(',''))
只使用:
fout.write('\n')
将用新行字符替换该行,因此代码为:
with open("test.txt", "r") as fin:
with open("result.txt", "w") as fout:
for line in fin:
if line.startswith('('):
fout.write('\n')
else:
fout.write(line)