为文件夹中的每个文本文件创建docID

时间:2017-11-12 07:41:29

标签: python elasticsearch file-io nlp data-science

你好我有一个名为dict的文件夹,该文件夹包含4到6个文本文件,现在我想为文件夹中的每个文本文件分配一个ID docID,我已经使用了下面的代码

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

我收到了错误

invalid literal for int() with base 10: 

我已经尝试了很多方法,但任何人都无法帮助我解决问题

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试将字符串转换为整数 只有当你的字符串看起来像整数时才会有用(例如'1')。

如果您只想要与每个文件关联的整数值,请使用enumerate

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

或者只是:

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

您可能希望保留dictdocID映射到文件名,在这种情况下,您可以使用词典理解:

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