首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:在使用os.popen().read()时嵌入空字节

ValueError:在使用os.popen().read()时嵌入空字节
EN

Stack Overflow用户
提问于 2022-04-19 12:52:41
回答 1查看 128关注 0票数 0

我想给罗菲打几行图标,但我搞错了,我不明白为什么

代码语言:javascript
复制
def show_podcasts(f):
    podcasts_list = ""
    with open(f,"r") as podcasts:
        for line in podcasts:
            episode_title = " ".join(line.split(" ")[:-2])
            found = False
            for pic in os.listdir("images"):
                if os.path.isfile(os.path.join("images",pic)):
                    if pic.startswith(episode_title):
                        found = True
                        podcasts_list += episode_title + "\x00icon\x1f" + pic + "\n"
            if not found:
                podcasts_list += episode_title + "\n"
    print(podcasts_list)
    selected_podcast = os.popen("(cat << EOF\n" + podcasts_list + "EOF\n)| rofi -dmenu -p 'enter the podcast you are looking for'").read()

这就是错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/javier/ssd/dev/python/pod-rofi/main.py", line 91, in <module>
    main()
  File "/home/javier/ssd/dev/python/pod-rofi/main.py", line 84, in main
    show_podcasts("podcasts")
  File "/home/javier/ssd/dev/python/pod-rofi/main.py", line 77, in show_podcasts
    selected_podcast = os.popen("(cat << EOF\n" + podcasts_list + "EOF\n)| rofi -dmenu -p 'enter the podcast you are looking for'").read()
  File "/usr/lib/python3.10/os.py", line 985, in popen
    proc = subprocess.Popen(cmd,
  File "/usr/lib/python3.10/subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1775, in _execute_child
    self.pid = _posixsubprocess.fork_exec(
ValueError: embedded null byte
EN

回答 1

Stack Overflow用户

发布于 2022-04-19 13:10:06

我不明白你到底想做什么,但希望我能解释一下错误。

运行程序涉及系统调用,接口遵循C语言规则,即字符串(在本例中为命令)以空字节结束。该规则意味着空字节不能是字符之一。

但是这里将插入空字节:

代码语言:javascript
复制
podcasts_list += episode_title + "\x00icon\x1f" + ....
#                                 ^^^^
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71925296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档