在scikit-learn中,load_files函数正在读取不需要的文本文件

时间:2014-02-27 09:00:16

标签: python file-io scikit-learn

我正在使用sci-kit中的load_files函数学习加载2个简单的文本文档。

设置很简单。我的文件名为file1file2。 第一个文件包含文本pig cow chicken,而第二个文件包含文本pig car truck

他们都住在这里:

/home/me/Dropbox/test

到目前为止一切顺利。

现在,我使用load_files函数,

text_data = load_files('/home/me/Dropbox/test', encoding='latin-1')

接下来,我检查一下 text_data.filenames
......事实证明我得到了一些奇怪的额外文件!

[ '/home/me/Dropbox/test/folder1/document2.txt'
  '/home/me/Dropbox/test/folder1/document2.txt~'
  '/home/me/Dropbox/test/folder1/document1.txt~'
  '/home/me/Dropbox/test/folder1/document1.txt']

我查看了 text_data.data
得到:

[u'pig\ncar\ntruck\n', u'', u'', u'pig\ncow\nchicken\n']

我认为这里有一些隐藏文件或临时文件或某些类型的东西。我的文件都没有打开。我重新启动了iPython,重新启动了笔记本电脑等。我使用ls -lart并在目录中看到它们。

我使用的是Ubuntu 13.10。

我想知道摆脱它们的好方法,这将解决这个特定情况下的问题,但除此之外,我想知道为什么会发生这种情况以及如何确保它不再发生。这些隐藏文件背后的机制是什么,以及为什么函数会加载它们?

提前致谢。

谢谢!

1 个答案:

答案 0 :(得分:3)

这些文件很可能是文本编辑器自动创建的备份文件,例如vim。

要以递归方式删除当前目录下以~结尾的所有文件,您可以使用以下命令:

find -name "*~" -delete

现在的问题是你是否真的想用sklearn.datasets.load_files加载文件。它旨在加载带有类别的文本文件作为子文件夹名称,这似乎不是您的目录的情况。如果您只想加载两个简单的文本文档,内置的open函数是否就足够了?