-2

こんにちは皆さん、私はPythonにまったく慣れていないので、あなたの助けが必要です.

import sys, http.client

file = open('out.txt', 'w')
showlines = 50
npa = []

try:
     servername = sys.argv[1]
except:
    servername = 'localcallingguide.com' 
server = http.client.HTTPConnection(servername)

for i in range(1000):
    if i < 10:
        npa.append('00' + str(i))
    elif i >= 10 and i < 100:
        npa.append('0' + str(i))
    else:
        npa.append(str(i))

for i in range(len(npa)):
    filename = '/lca_rcdist.php?npa1=503&nxx1=745&npa2=503&nxx2=' + npa[i]
    server.putrequest('GET', filename)
    server.putheader('Accept', 'text/html')
    server.endheaders()
    reply = server.getresponse()

    if reply.status != 200:
        print('Error sending request', reply.status, reply.reason)
    else:
        data = reply.readlines()
        reply.close()
        for line in data[:showlines]:
            cLine = line.decode('utf-8')
            if '"ofrom">N<' in cLine:
                file.write('NXX ,' + npa[i])

file.close

上記のスクリプトを使用すると、「NXX、503、NXX、203 などの出力が得られます。出力から NXX を非表示にする必要があります。スクリプトの NXX を削除せずにそれを行う方法を考えてください。

よろしくお願いします!

4

1 に答える 1

2

スクリプトを変更できる場合は、次のようにします。

file.write(',' + npa[i])

このスクリプトを変更できない場合は、次のようにします。

スクリプトの名前が「example.py」の場合、次のように呼び出すことができます。

python example.py ; sed -i s/NXX//g out.txt

これにより、出力から削除NXXされます。

于 2013-09-19T15:21:24.057 に答える