2017-11-12 11 views
0

に作成するこんにちは私はdictという名前のフォルダを持っていて、そのフォルダには4〜6個のテキストファイルが含まれているので、IDocIDをフォルダ内の各テキストファイルに割り当てたいと思っていました。各テキストファイルのdocIDをフォルダ

docID_list = [int(docID_string) for docID_string in os.listdir('/Users/suryavamsi/dict')] 

と、私はエラー

invalid literal for int() with base 10: 

を持っている私はたくさんの方法を試してみましたが、ひび割れができませんでした、それはいずれかが私を助けることができる

答えて

0

あなたがしようとしているようです文字列をintに変換するegers。
文字列が整数(例:'1')のように見える場合にのみ機能します。

あなただけの、各ファイルに関連付けられた整数値をしたいenumerateを使用する場合:

docID_list = [i for i, _ in enumerate(os.listdir('/Users/suryavamsi/dict'))] 

それとも:

docID_list = list(range(len(os.listdir('/Users/suryavamsi/dict')))) 

あなたはで、ファイル名にdocIDをマップdictを維持したい場合がありますあなたは辞書の理解を使用することができます:

docID_list = {i:doc for i, doc in enumerate(os.listdir('/Users/suryavamsi/dict'))} 
+0

おかげさまで素晴らしい –

関連する問題