【问题标题】:creating docID for each text file in folder为文件夹中的每个文本文件创建 docID
【发布时间】:2017-11-12 07:41:29
【问题描述】:
你好,我有一个名为 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:
我试过很多方法都破解不了,谁能帮帮我
【问题讨论】:
标签:
python
elasticsearch
file-io
nlp
data-science
【解决方案1】:
您似乎正在尝试将字符串转换为整数。
这仅在您的字符串看起来像整数时才有效(例如'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'))}