0

Pythonに相当するもので次のBashコードを検索します。

VAR=$(echo $VAR)

疑似Pythonコードは次のようになります。

var = print var

手伝ってくれますか?:-)

よろしく

編集:

私はこれを行う方法を探します:

for dhIP in open('dh-ips.txt', 'r'):
    gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
    print gi.country_code_by_addr(print dhIP) # <-- this line is my problem

Bashでは次のようにします。

print gi.country_code_by_addr($(dhIP))#疑似コードのみ...

それが今より明確になることを願っています。

Edit2:

皆さん、ありがとうございました!これが私の解決策です。改行文字を使用してコメントしてくれたLiquid_Fireと、彼のコードをホップしてくれてありがとう!

import GeoIP

fp = open('dh-ips.txt', 'r')
gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)

try:
    for dhIP in fp:
        print gi.country_code_by_addr(dhIP.rstrip("\n"))
finally:
    fp.close()
4

4 に答える 4

3

そこにある必要はありませんprint。変数の名前を使用するだけです。

for dhIP in open('dh-ips.txt', 'r'):
    gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
    print gi.country_code_by_addr(dhIP)

また、ファイルオブジェクトを反復処理すると、末尾に改行文字が含まれる行が表示されることに注意してください。dhIP.rstrip("\n")に渡す前に、それらを削除するようなものを使用することをお勧めしますcountry_code_by_addr

于 2011-09-29T17:46:59.567 に答える
2

そのまま使用dhIPしてください。特別なことをする必要はありません。

for dhIP in open('dh-ips.txt', 'r'):
    gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
    print gi.country_code_by_addr(dhIP)

注意:コードには他にもいくつか問題があります。

使用するライブラリに精通していないと、ループのすべての反復でGeoIPを不必要にインスタンス化するように思われます。また、後でファイルを閉じることができるように、ファイルハンドルを破棄しないでください。

fp = open('dh-ips.txt', 'r')
gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)

try:
    for dhIP in fp:
        print gi.country_code_by_addr(dhIP)
finally:
    fp.close()

または、さらに良いことに、2.5以降ではコンテキストマネージャーを使用できます。

with open('dh-ips.txt', 'r') as fp:
    gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
    for dhIP in fp:
        print gi.country_code_by_addr(dhIP)
于 2011-09-29T17:51:23.243 に答える
1

次の機能を試してみてください。

str(var)

repr(var)

于 2011-09-29T17:26:33.057 に答える
0

同じ名前に値を再割り当てしようとしている場合は、次のようになります。

var = var

printここで、参照されるオブジェクトの文字列表現(通常は返されるもの)を割り当てようとしている場合は、次のようになりvarます。

var = str(var)

それはあなたが求めているものですか?

于 2011-09-29T17:25:14.913 に答える