-2

I'd like to add only servers currently doesn't exist at file

My current code :

 f = open(filename,'a')
 for server in cmo.getServers() :
    print >>f, server.getListenAddress()

Thanks in advance

4

2 に答える 2

0

ファイルに既に存在するサーバーのリストを作成します。

present = [l.strip() for l in open(filename)]

(ファイル形式が 1 行に 1 つのサーバーのみであり、他の記号はないと仮定します)。

次に、アドレスがリストにあるかどうかを確認します。

for server in cmo.getServers():
    address = server.getListenAddress()
    if address not in present:
        print >>f, address

getServers()これは、取得したアドレスが繰り返されないことを前提としています。それも可能であれば、最初にそれらのセットを構築します。

new = set(server.getListenAddress() for server in cmo.getServers())
for address in new:
    if address not in present:
        print >>f, address
于 2012-05-17T09:06:56.223 に答える
0

これを試して:

data = set( [i.strip() for i in open( filename, 'r' ).readlines()] )

for server in cmo.getServers() :
    data.add( server.getListenAddress() )

open( filename, 'w' ).write('\n'.join(data))
于 2012-05-17T09:09:48.967 に答える