Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从文件读取的变量与硬编码字符串不同吗?_Python_Selenium_Proxy - Fatal编程技术网

Python 从文件读取的变量与硬编码字符串不同吗?

Python 从文件读取的变量与硬编码字符串不同吗?,python,selenium,proxy,Python,Selenium,Proxy,请参阅此代码 PROXY_HOST, PROXY_PORT = choice(proxies).rstrip().split(":") fp = webdriver.FirefoxProfile() # Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5 fp.set_preference("network.proxy.type", 1) fp.set_preference("network.proxy.http", PR

请参阅此代码

PROXY_HOST, PROXY_PORT = choice(proxies).rstrip().split(":")

fp = webdriver.FirefoxProfile()

# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
fp.set_preference("network.proxy.type", 1)

fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", PROXY_PORT)
fp.set_preference("network.proxy.ftp", PROXY_HOST)
fp.set_preference("network.proxy.ftp_port", PROXY_PORT)
fp.set_preference("network.proxy.ssl", PROXY_HOST)
fp.set_preference("network.proxy.ssl_port", PROXY_PORT)
代理是代理列表,其格式为
123.123.123.123:1234\n
。奇怪的是,如果我硬编码这两个变量
PROXY\u HOST
PROXY\u PORT
,如果我尝试从一个我喜欢的文件中读取它,它将使用代理

with open("proxies.txt") as f:
    proxies = f.readlines()
代理设置将被忽略。如果我打印这两个变量,它们是正确的,但没有使用


因此,有什么我看不到的,硬编码ip和端口或从文件/列表中读取它有什么不同。

readlines
保留每行的行尾字符。如果端口设置为,这可能会导致代理设置自动失败,例如,
“1234\n”

这是一个如何正确调试的问题。如果此列表是硬编码的,请查看
代理
,如果您从文件中读取,请查看
代理
。最好使用
repr()
打印这两个变量。你会看到不同。解决方案非常简单:从文件读取端口后,它仍然是字符串,需要转换为整数。硬编码时,首先将其定义为整数。

我尝试使用rstrip()解决此问题,但可能还有更多问题我没有看到。我会调查的it@rootman:正如其他人所建议的,您需要准确地向我们显示您硬编码的变量以及文件的内容。我不太理解您的意思,但我猜想您在读取文件时遇到问题,因为可能每个文件行的最后一个字符是\n,或者类似的。关于,您将其硬编码为什么,文件的示例内容是什么?如果此列表是硬编码的,请向我们展示
代理
,如果您从文件中读取,请向我们展示
代理
。最好是使用
repr()
打印这两个变量。我所说的硬编码是:PROXY\u HOST=“123.123.123.123”,端口也是如此。给我一分钟,我会发布更多的信息-@Jan PhilipGehrcke向我指出了解决方案,非常感谢:代理端口在读取后是一个字符串,我只需将其转换为整数。您应该在这个回答中发布实际结果(代理端口是一个字符串,但它已硬编码为整数)整个“线程”结果很奇怪。我更新了答案。