jes*_*ica 1 python linux python-3.x apache-kafka
我正在使用这个 Python (Python 3) 代码,以便获取所有主题的列表
\n作为:
\nmore test.py\n\nlist = os.popen(" kafka-topics.sh \xe2\x80\x93zookeeper zoo_server:2181 --list | sed '/^[[:space:]]*$/d' ").read().split('\\n')\nprint (list)\nRun Code Online (Sandbox Code Playgroud)\n当我运行 python 脚本时,我注意到最后一行如下所示
\n\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\n\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6.'topic32', 'topic33', 'topic34 , \xe2\x80\x98 \xe2\x80\x98]\nRun Code Online (Sandbox Code Playgroud)\n所以最后一个单词实际上是空的,因为在单引号之间,因为\xe2\x80\x98 \xe2\x80\x98我们没有主题名称
这很奇怪,因为在行中我使用 sed -sed '/^[[:space:]]*$/d'来删除空行,并且当我运行以下命令时实际上不是空行
kafka-topics.sh \xe2\x80\x93zookeeperzoo_server:2181 --list | sed '/^[[:space:]]*$/d' \nRun Code Online (Sandbox Code Playgroud)\n我的 Python 行有什么问题吗?
\n例如,当我跑步时
\nkafka-topics.sh \xe2\x80\x93zookeeper zoo_server:2181 --list | sed '/^[[:space:]]*$/d'\n\ntopic1\ntopic2\ntopic3\n.\n.\n.\nRun Code Online (Sandbox Code Playgroud)\n
这其实跟没有什么关系popen。返回的字符串read以换行符结尾。
>>> "foo\nbar\n".split()
['foo', 'bar', '']
Run Code Online (Sandbox Code Playgroud)
如果您不希望最后一个换行符后面有空字符串,则应首先删除最后一个换行符。
list = os.popen(...).read().rstrip('\n').split('\n')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |