Python相当于Bash$()
我在Python等价物中搜索以下Bash代码:Python相当于Bash$(),python,equivalent,Python,Equivalent,我在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 l
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
如果您只是尝试将一个值重新分配给相同的名称,则会是:
var = var
现在,如果您试图为var
引用的任何对象分配字符串表示(通常是print
返回的内容):
var = str(var)
这就是您要找的吗?如果您只是尝试将一个值重新分配给同一个名称,它将是:
var = var
现在,如果您试图为var
引用的任何对象分配字符串表示(通常是print
返回的内容):
var = str(var)
这就是您想要的吗?您可能需要尝试以下功能: str(var)
repr(var)您可能需要尝试以下功能: str(var)
repr(var)您不需要在其中打印
,只需使用变量的名称:
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”)
的东西来删除它们,然后再通过\u addr将其传递到country\u code\u您不需要在其中打印,只需使用变量名:
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”)
的东西来删除它们,然后再通过\u addr
将其传递到country\u code\u,只需按原样使用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)
只需按原样使用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)
你到底想做什么?你认为bash代码做什么?例如:VAR=“-e”
或VAR=“ab”
(我不知道如何格式化那里的多个空格)。您真正想要做什么?您是否正在尝试将命令行程序的输出分配给变量?或者是抓住一个环境变量的值?PS我不知道为什么每个人都对建议eval的人投了反对票,这就是$()语法的字面意思。我编辑了我的问题。希望现在更清楚。你到底想做什么?你认为bash代码做什么?例如:VAR=“-e”
或VAR=“ab”
(我不知道如何格式化那里的多个空格)。您真正想要做什么?您是否正在尝试将命令行程序的输出分配给变量?或者是抓住一个环境变量的值?PS我不知道为什么每个人都对建议eval的人投了反对票,这就是$()语法的字面意思。我编辑了我的问题。希望现在更清楚。需要rstrip(“\n”)!我使用了你的评论和来自hop的代码,现在它可以工作了。非常感谢。需要rstrip(“\n”)!我使用了你的评论和来自hop的代码,现在它可以工作了。非常感谢,谢谢!与rstrip(“\n”)一起,它就像一个符咒一样工作!:-)非常感谢。与rstrip(“\n”)一起,它就像一个符咒一样工作!:-)