リストからループし、ファイルから情報を取得し、新しいファイルを書き、電子メールを送信してから、次の反復を繰り返してプロセスを開始します。
私はそれを書いてみると、あなたのために私のコードを見てみましょう。
リストはipaddressのリストであり、両方のファイルがテキストです。最初の比較ループ後にリスト内の次の繰り返しを呼び出す
はデフデフ私のリスト1(最初のコードブロック)を構築FILE1
からの情報をつかむ
DEFリスト1取る[0] file1とそれからFILE2(2番目のコードブロック)を構築するためにそれを適用
デフからの電子メールアドレスを取得しますリスト1 [0]
DEF FILE2
に電子メールを送信する(私はこのすべてを行うことができ、それだけでLIST1するために戻ってきています[1]私が行うことができない)
はLIST1に行く[1] FILE2の構築をfile1に適用されます電子メールを送信するなど...リストの最後まで
2 import re
3
4 def one_ip_each():
5 one_ip_each = []
6 global ipAddr
7 with open('Invalid_names_file') as Invalid_names_file:
8 a = [re.search(r'((\d+\.)+\d+)', line).group() for line in \
9 Invalid_names_file]
10 for x in a:
11 if x not in one_ip_each:
12 one_ip_each.append(x)
13 ipAddr = x
14 return ipAddr
15 ## makes an iterator that interpreter can step through, yet other funciton
16 ## complains that it's not a string
17 # ipAddr = iter(one_ip_each)
18 # return ipAddr
19
20 one_ip_each()
ここ(ip-addrでは、ITERことなく)私が欲しいものを返すコードやループではない)
5 def isp_email_names():
6 with open('Invalid_names_file') as Invalid_names_file:
7 with open('ISP_names_file', 'w') as ISP_names_file:
8 for line in Invalid_names_file:
9 if one_ip_each.ipAddr in line:
10 ISP_names_file.write(str(line))
11 ISP_names_file.flush()
は、うまくいけば、行番号で、これはいくつかの助けになるのです。
私はipAddrをグローバルにしました。私はそれを電子メール機能から呼び出して、file2が適切な人に送られていることを知ることができます。
このことが重要かどうかはわかりません。
私が取得(ライン17および18のような)ITERにip-addrでを作る場合 - >
TypeError: 'in <string>' requires string as left operand, not list_iterator
を私は読みながら、私は学ぶことを楽しむ、まだ私がこだわっています。適切な方向に私を指し、私は質問に答えるために読んで戻ってくるでしょう。
まだ、私は人々がフィルタを構築したい、もっと多くの機能を定義したいと思っています。
私はそれがかなり簡単に私はそれを把握することはできないはずだと思います。
(ポストは一種の長いです、まだthouroughになりたかった)
フォーマットあなたのコードやテキスト、または誰も助けたいん:
あなたはこれを試みることができます。 –