2

我对 Python 很陌生。我正在开发一个 LCD Raspberry Pi 项目,在 LCD 上显示字符串。

我从一个命令创建一个字符串来显示一个广播曲目名称(我的代码中的第 1 行),但是这个字符串总是以“名称:”开头。这直接从 MPD(音乐播放器守护程序)读取,所以我对此无能为力。

因为它总是以相同数量的字符开头,所以我想从这个字符串的开头删除“5”个字符,并有一个新的字符串可以使用。对我来说听起来很简单......但我无法完成这项工作。

我正在努力:

Print station[5:]

基于我在寻找答案时发现的东西,但它似乎什么也没做。

这是我的代码的主要块:(同样,第 5 行是为了工作......)

f=os.popen("echo 'currentsong' | nc localhost 6600 | grep -e '^Name: '")
  station = ""
  for i in f.readlines():
   station += i
   print station[5:]
   str_pad = " " * 16  
   station = str_pad + station  
   for i in range (0, len(station)):  
    lcd_byte(LCD_LINE_1, LCD_CMD)  
    lcd_text = station[i:(i+16)]
    lcd_string(lcd_text,1)  
    time.sleep(0.3)  
    lcd_byte(LCD_LINE_1, LCD_CMD)  
    lcd_string(str_pad,1)
    lcd_byte(LCD_LINE_2, LCD_CMD)
    lcd_string("**Playing**",2)

这只是继续显示整行,例如“姓名:Pink Floyd - Money”

如果有人可以提供帮助,我将不胜感激。

谢谢

4

3 回答 3

4

问题是,当你这样做时,print station[5:]你正在对字符串进行切片并显示它,但从不保存结果。请记住,在 Python 中,字符串是不可变的(它们不会改变)。因此,doingstation[5:]只会返回一个从未保存过的新字符串。

相反,将第 5 行替换为station = station[5:]. station这将用不以 . 开头的新版本覆盖字符串Name:

于 2013-08-27T23:24:52.370 回答
1

好吧,只是 print station[5:] 不会做你想做的事。你需要做:

station = station[5:]
于 2013-08-27T23:20:54.990 回答
1

将第 4 行和第 5 行替换为:

station += i[5:]
print station
于 2013-08-27T23:23:06.043 回答