我想给罗菲打几行图标,但我搞错了,我不明白为什么
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()这就是错误
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发布于 2022-04-19 13:10:06
我不明白你到底想做什么,但希望我能解释一下错误。
运行程序涉及系统调用,接口遵循C语言规则,即字符串(在本例中为命令)以空字节结束。该规则意味着空字节不能是字符之一。
但是这里将插入空字节:
podcasts_list += episode_title + "\x00icon\x1f" + ....
# ^^^^https://stackoverflow.com/questions/71925296
复制相似问题