0

pylast を使用しているファイルへの書き込みに問題があります。pylast で指定されたテンプレートに従って、必要なものを抽出する正規表現を追加しました (問題なく動作しています) が、ファイルに出力しようとするとエラーが発生し、修正方法がわかりません ( Pythonとそのライブラリのいくつかを独学しています)。どこかで作成する必要があるエンコーディング仕様があると思います (画面への出力の一部には、非標準文字も表示されます)。問題を解決する方法がわかりません。誰でも助けることができますか?ありがとう

import re
import pylast

RawArtistList = []
ArtistList = []

# You have to have your own unique two values for API_KEY and API_SECRET
# Obtain yours from http://www.last.fm/api/account for Last.fm
API_KEY = "XXX"
API_SECRET = "YYY"

###### In order to perform a write operation you need to authenticate yourself
username = "username"
password_hash = pylast.md5("password")
network = pylast.LastFMNetwork(api_key = API_KEY, api_secret = API_SECRET, username = username, password_hash = password_hash)





##          _________INIT__________
COUNTRY = "Germany"

#---------------------- Get Geo Country --------------------
geo_country = network.get_country(COUNTRY)

#----------------------  Get artist --------------------
top_artists_of_country = str(geo_country.get_top_artists())

RawArtistList = re.findall(r"u'(.*?)'", top_artists_of_country)

top_artists_file = open("C:\artist.txt", "w")
for artist in RawArtistList:
  print artist
  top_artists_file.write(artist + "\n")

top_artists_file.close()

「artist.txt」を作成しようとしているファイルの名前が「x07rtist.txt」に変更され、エラーが発生します。次のようになります。

Traceback (most recent call last):
File "C:\music4A.py", line 32, in <module>
top_artists_file = open("C:\artist.txt", "w")
IOError: [Errno 22] invalid mode ('w') or filename:'C:\x07rtist.txt'

助けてくれてありがとう!乾杯。

4

1 に答える 1

1

Pythonのドキュメントには次のように書かれています:

バックスラッシュ () 文字は、改行、バックスラッシュ自体、引用文字など、特別な意味を持つ文字をエスケープするために使用されます。

...だからあなたが言うとき

top_artists_file = open("C:\artist.txt", "w")

その文字列リテラルは次のように解釈されています

C:  \a rtist.txt

...ここ\aで、値が 0x07 の単一の文字です。

...その行は次のようになります。

# doubling the backslash prevents misinterpreting the 'a'
top_artists_file = open("C:\\artist.txt", "w")

また

# define the string literal as a raw string to prevent the escape behavior
top_artists_file = open(r"C:\artist.txt", "w")

また

# forward slashes work just fine as path separators on Windows.
top_artists_file = open("C:/artist.txt", "w")
于 2012-04-16T23:43:04.067 に答える