我有一个从大型日志文件中获取输入的脚本。此文件具有编码的URL。 我正在使用标准输入从文件中获取这些URL。我希望单独处理每个URL。
问题是,当我将单个URL分成URL中的每个字符时。我做'.join(某事)然后在处理后得到字符。
e.g。
for line in sys.stdin:
line = line.strip()
line1 = ''.join(line)
我还尝试收集网址中的所有字符然后加入。结果还是一样。
我拿出样品:
从档案输入:“www.cnn.com” 在sys.std和处理之后输出:['w','w','w','。','c','n','n','。','c','o','米']
列表出现是因为我这样做了。否则我从sys.stdin获得www.cnn.com。但底层结构与输出相同。
我想要的是: 文件输入:“www.cnn.com” 输出:“www.cnn.com”(这应该是一个字符串。不是单个字符串)
由于
答案 0 :(得分:1)
我认为您的标准输入可能会出现乱码。考虑一下这个脚本:
#stdin.py
import sys
for line in sys.stdin:
print line.strip()
然后输入到它的输入按预期工作:
$ echo -e "www.cnn.com\nwww.test.com" | python stdin.py
www.cnn.com
www.test.com
如果你在一个字符串上调用list()
,它会按字符分割它:
>>> list("test")
['t', 'e', 's', 't']
我猜你可能想要做的是读取整个输入然后分割成行,如下所示:
import sys
lines = sys.stdin.read().split()
print lines
运行它,我得到:
$ echo -e "www.cnn.com\nwww.test.com" | python stdin.py
['www.cnn.com', 'www.test.com']