如何通过终端为python准备文件夹中所有TXT文件中的文本?

时间:2019-05-10 20:21:41

标签: python-3.x pandas macos unix terminal

我的文件夹中包含很多TXT文件(书),这些文件的开头有很多特殊符号(多个空格,段落,#,-,'。'等)。在以python(pandas)读取文件时,会引起各种各样的问题。通常,它会转换为以下错误:

ParserError: Error tokenizing data. C error: Expected 1 fields in line 29, saw 2

Found 0 texts.

我可以使用某些终端脚本进行文本预处理吗?非常感谢您的协助!

2 个答案:

答案 0 :(得分:0)

一个文件的示例:

enter image description here

和代码:

texts = []  # list of text samples
labels_index = {}  # dictionary mapping label name to numeric id
labels = []  # list of label ids
for name in sorted(os.listdir(TEXT_DATA_DIR)):
    path = os.path.join(TEXT_DATA_DIR, name)
    if os.path.isdir(path):
        label_id = len(labels_index)
        labels_index[name] = label_id
        for fname in sorted(os.listdir(path)):
            if fname.isdigit():
                fpath = os.path.join(path, fname)
                args = {} if sys.version_info < (3,) else {'encoding': 'utf-8'}
                with open(fpath, **args) as f:
                    t = f.read()
                    i = t.find('\n\n')  # skip header
                    if 0 < i:
                        t = t[i:]
                    texts.append(t)
                labels.append(label_id)


print('Found %s texts.' % len(texts))

答案 1 :(得分:0)

您可以尝试unicodedata。

text = unicodedata.normalize('NFKD', text)

它将unicode字符替换为其正常表示形式