我的目标是编写一个从文本中提取url的行程序。问题是我甚至不能从STDIN读取数据。我目前的实验:
└──> grep -i http: flashgot.log | python -c 'import sys; import re; for line in sys.stdin: print line'
File "<string>", line 1
import sys; import re; for line in sys.stdin: print line
^
SyntaxError: invalid syntax
└──> grep -i http: flashgot.log | python -c 'import sys; import re; x = [print line for line in sys.stdin]'
File "<string>", line 1
import sys; import re; x = [print line for line in sys.stdin]
^
SyntaxError: invalid syntax
我通过使用
sys.stdout.write
而不是print
得到了你的代码片段:我认为问题不在于读取stdin,而在于在一行中找到正确的语法。在尝试脚本时,在单行语法中,
for
不起块的作用,列表生成器中的print
也不起作用。在PS:在尝试单行函数时,我发现^{} 有时很有用。在以后的脚本中,您可能会发现它很有用
相关问题 更多 >
编程相关推荐