为什么我的glob.glob循环不遍历文件夹中的所有文本文件?

时间:2016-03-30 20:01:54

标签: python python-3.x text glob

我试图从包含python 3的文本文档的文件夹中读取。具体来说,这是LingSpam垃圾邮件数据集的修改。我期待我写的代码返回所有1893个文本文档名称,但是,代码返回前420个文件名。我不明白为什么它没有停止文件名的总数。有什么想法吗?

if not os.path.exists('train'):  # download data
  from urllib.request import urlretrieve
  import tarfile
  urlretrieve('http://cs.iit.edu/~culotta/cs429/lingspam.tgz', 'lingspam.tgz')
  tar = tarfile.open('lingspam.tgz')
  tar.extractall()
  tar.close()
abc = []
for f in glob.glob("train/*.txt"):
  print(f)
  abc.append(f)
print(len(abc))

我尝试过更改glob参数但仍然没有成功。

编辑:显然我的代码适用于除我之外的所有人。这是我的output

1 个答案:

答案 0 :(得分:0)

成功!问题是

if not os.path.exists('train'):  # download data

要检查我的输出,我实际上已将文件下载到我的计算机上,并且由于此行检查该文件夹是否存在,并且确实存在,因此导致了问题。我删除了我的机器上的文件,现在它可以正常工作,但我怀疑运行

  from urllib.request import urlretrieve
  import tarfile
  urlretrieve('http://cs.iit.edu/~culotta/cs429/lingspam.tgz', 'lingspam.tgz')
  tar = tarfile.open('lingspam.tgz')
  tar.extractall()
  tar.close()
没有if语句的

会产生相同的结果。