Python一行程序用于从tex中提取url

2024-05-08 02:58:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是编写一个从文本中提取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

第二个计划是使用来自hereherehere或{a4}的建议


Tags: inimportreloghttpforstringstdin
1条回答
网友
1楼 · 发布于 2024-05-08 02:58:55

我通过使用sys.stdout.write而不是print得到了你的代码片段:

grep -i http: flashgot.log | python -c 'import sys; import re; [sys.stdout.write("%s\n" % line) for line in sys.stdin]'

我认为问题不在于读取stdin,而在于在一行中找到正确的语法。在尝试脚本时,在单行语法中,for不起块的作用,列表生成器中的print也不起作用。在

PS:在尝试单行函数时,我发现^{}有时很有用。在以后的脚本中,您可能会发现它很有用

相关问题 更多 >