このPythonコードを使用して、特定のファイル(source_file.txt)から電子メールアドレスを抽出し、それらの電子メールアドレスを別のファイルに書き込みます。(私はPython 3.3を使用しています)
import urllib.request
import re
import fileinput, glob, string, sys, os
from os.path import join
import os
filePath = "source_file.txt"
if not filePath:
print("Sorry! Source File could not be located!")
else:
page = open(filePath, "r")
pageContent = page.read()
page.close()
style_normal = re.compile("[-a-zA-Z0-9._]+@[-a-zA-Z0-9_]+.[a-zA-Z0-9_.]+")
style_text_one = re.compile('[-a-zA-Z0-9._]+\s+at\s+[-a-zA-Z0-9_]+\s+dot\s+[a-zA-Z0-9_.]+')
style_text_two = re.compile('[-a-zA-Z0-9._]+\(at\)[-a-zA-Z0-9_]+\(dot\)[a-zA-Z0-9_.]+')
style_normal_list = style_normal.findall(str(pageContent))
style_text_one_list = style_text_one.findall(str(pageContent))
style_text_two_list = style_text_two.findall(str(pageContent))
f = open('emails_file.txt', 'a')
f.write('testing')
for item in style_normal_list:
print("%s" %item)
f.write("%s" %item)
for item in style_text_one_list:
text_one = item.replace(' at ','@')
text_two = text_one.replace(' dot ','.')
print(text_two)
f.write(text_two)
for item in style_text_two_list:
text_one = item.replace('(at)','@')
text_two = text_one.replace('(dot)','.')
f.write(text_two)
問題は、これを実行するとファイルは作成されますが、ファイルには何も書き込まれないことです。「テスト」というテキストすらありません。ファイルは作成されましたが、空白です。
printステートメントを使用して、コードの他の部分が正しく機能しているかどうかを確認しました。Pythonのドキュメントによると、構文は正しいです。このコードで私が犯した間違いを指摘できる人はいますか?