-1

フォルダー内のデータを調べて、それらを識別し、Excel スプレッドシートにあるルールのリストに従って名前を変更したい 必要なライブラリをロードし、ディレクトリを作業ディレクトリにします。私は(xlrdを使用して)xcelファイルを読み込み、列ごとにデータを読み込もうとすると:

fname = metadata.col_values(0, start_rowx=1, end_rowx=None)

値のリストには、それらの前に a が付いていuます-私はユニコードだと思います-次のように: fname = [u'file1', u'file2'] など

fname を ascii 文字列のリストに変換するにはどうすればよいですか?

4

2 に答える 2

0

前面のuは、文字列を印刷するときに、基になる表現が何であるかを示す単なる視覚的な項目です。これは、リストを印刷するときに文字列を一重引用符で囲むようなものです。これらは、印刷されるオブジェクトに関する情報 (具体的には、文字列であること) を示すためにありますが、実際にはオブジェクトの一部ではありません。

の場合u、それは Unicode オブジェクトだと言っています。文字列を内部で使用するとu、単一引用符のように外部には存在しません。ファイルを開いてそこに文字列を書き込んでみるとu、実際には基になる文字列オブジェクトの一部ではないため、単一引用符と単一引用符が表示されないことがわかります。

with open(r'C:\test\foo.bar', 'w') as f:
    for item in fname:
        f.write(item)
        f.write('\n')

最初になしで文字列を印刷する必要がある場合はu、 を使用して ASCII に変換できますがu'unicode stuff'.encode('ascii')、正直なところ、これが実際に何をしているのかに問題があるとは思えません。

Unicode がデフォルトであり、u通常は印刷されない Python 3 を使用することもできます。

于 2013-07-22T14:22:45.173 に答える