ターミナルのコマンドからデータを生成しnetstat -a
ました。そこから、ファイルに書き込んだすべての着信および発信 IP アドレスが得られます。列を介して IP アドレスのみを取得するにはどうすればよいですか?
また、列パラメータでデータを取得するにはどうすればよいですか? たとえば、列 10 から開始し、列 27 で終了します。フィルター機能を試しましたが、機能しませんでした。ありがとう!
ターミナルのコマンドからデータを生成しnetstat -a
ました。そこから、ファイルに書き込んだすべての着信および発信 IP アドレスが得られます。列を介して IP アドレスのみを取得するにはどうすればよいですか?
また、列パラメータでデータを取得するにはどうすればよいですか? たとえば、列 10 から開始し、列 27 で終了します。フィルター機能を試しましたが、機能しませんでした。ありがとう!
これはどう:
with open('data.txt') as inf:
for lc, line in enumerate(inf, 1): # lc - current line count
if lc > 3: # if you need to skip some header lines ?? (unknown data)
cols = line.split()
for i in xrange(10, 28): # print column 10 - 27
print cols[i], ' ',
print
質問とともにデータの一部を投稿していただけると助かります。その代わりに、 10 - 27の列の例を使用しています。
これは基本的にLevonの答えと同じですが、少しコンパクトでPythonicであり、OPがやろうとしていることを推測するために数値が調整されています。
with open('data.txt') as inf:
for lc, line in enumerate(inf): # lc - current line count
if lc >= 2: # netstat usually has 2 lines of header info
print ' '.join(line.split()[3:5]) # cols 3-4 are the addresses
filename = ...
with open(filename, 'rb') as f:
for row in f.readlines()[1:]:
columns = row.split()
if len(columns) > 2:
print row.split()[1]