我想在输出后删除空行:
#!/usr/bin/python
os.system("find /home/pi/bsp/musik/musik/ -name ""*.mp3"" | shuf -n 1 > /home/pi/bsp/musik/musik/track")
我明白了:
>>>cat track
/home/pi/bsp/musik/musik/2/Little Green Bag - George Baker Selection - Reservoir Dogs.mp3
但是当我用Python打印文件时,这是一个不同的故事:
>>>sudo python play.py
/home/pi/bsp/musik/musik/2/Lilly Allen - Fuck You.mp3
>>>>
......最后加上一条线。
我喜欢将曲目传递给OMXPlayer,但最后还有额外的线路没有办法......所以我认为不可能很难摆脱它:
我尝试将a保存到新文件并删除空行:
os.system("sed '/^$/d' /home/pi/bsp/musik/track > /home/pi/bsp/musik/tt")
os.system("mv /home/pi/bsp/musik/tt /home/pi/bsp/musik/track ")
或者在管道中将其移除:
sed '/^$/d'
或者通过以下方式将其从刺痛中移除:
text = os.linesep.join([s for s in text.splitlines() if s])
或者:
track[:track.rfind('\n')]
到目前为止还没有任何工作。
我该怎么做?
答案 0 :(得分:0)
假设play.py
是print
文件的内容,最后的额外行来自print
语句。如果需要使用Python输出文件的内容,可以使用sys.stdout.write
代替print
或rstrip('\n')
字符串,或者在print语句的末尾加上逗号,或使用end=''
的打印功能。如果您使用shell重定向或类似的方式将输入定向到OMXPlayer,它可能会正常工作而无需任何额外的努力。
import sys
sys.stdout.write(file_contents)
或
print file_contents.rstrip('\n')
或
print file_contents,
或
from __future__ import print_function
print(file_contents, end='')
答案 1 :(得分:0)
text = track.rstrip()
“返回删除了尾随字符的字符串副本。如果 省略字符或无,删除空白字符。“