【发布时间】:2020-07-31 19:35:41
【问题描述】:
我使用的语言是python
问题是:编写一个接受一个参数(文件名)的函数。文件包含各种文本行,有时还包含电话号码(即并非所有行都包含电话号码)。读取给定文件 逐行并在其中搜索电话号码(使用正则表达式),如果电话号码 存在于给定行中,将此行写入 phone-number-containing-lines.txt 否则写入此行 到plain-lines.txt。因此,一些行将在一个文件中,而其他行将在第二个文件中。
这是我想出的代码:
import re
f1 = open('phonenumber.txt', 'r')
regex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
for line in f1:
phone_numbers = regex.findall(line)
for num in phone_numbers:
f = open('phone-number-containing-lines.txt', 'w')
f.writelines(num)
f.close()
f2 = open('phonenumber.txt','r')
searchquery = re.compile(r'^[^\d]*$')
for line in f2:
plain_text = regex.findall(line)
for txt in plain_text:
d = open('plain-lines.txt', 'w')
d.writelines(txt)
d.close()
我没有收到任何错误,但我也只是得到了 phone-number-containing-lines.txt 只有一个电话号码,没有来自该行的文本和纯文本。 txt 完全为空
【问题讨论】:
标签: python-3.x regex file