2

私はPythonが初めてです。LCDに文字列を表示するLCD Raspberry Piプロジェクトに取り組んでいます。

ラジオ トラック名を表示するコマンドから文字列を作成します (コードの 1 行目) が、この文字列は常に 'Name:' で始まります。これは MPD (Music Player Daemon) から直接読み取るため、事前に何もできません。

常に同じ文字数で始まるため、この文字列の先頭から '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)

これは、「Name: Pink Floyd - Money」のように、行全体を表示し続けるだけです。

誰かが助けてくれれば、本当に感謝します。

ありがとう

4

3 に答える 3

4

問題はprint station[5:]、文字列をスライスして表示しているが、結果を保存していないことです。Python では、文字列は不変 (変更されない) であることを思い出してください。その結果、実行station[5:]すると、保存されない新しい文字列が返されるだけです。

代わりに、5 行目を に置き換えstation = station[5:]ます。stationこれにより、文字列が で始まらない新しいバージョンで上書きされますName:

于 2013-08-27T23:24:52.370 に答える
1

まあ、印刷ステーション[5:]だけでは、あなたが望むことはできません。あなたがする必要があります:

station = station[5:]
于 2013-08-27T23:20:54.990 に答える