python:Mac可以读取目录中的所有文件,但Windows无法读取?

时间:2015-04-05 03:56:00

标签: python

这可能是一个天真的问题,因为我绝对是python的新手......

我试图使用Mac从一个目录中读取一堆.txt文件,它运行良好,获取所有文件,没有任何例外。

但后来我意识到我需要切换到另一台Window计算机来进行计算...它只是不会读取所有文件。

以下是插图:

import numpy as np
import glob
import os
from __future__ import print_function

# read all .txt files in directory

names = []
for file in os.listdir("Data/text/film/topy/"):
    if file.endswith(".txt"):
        print(file)
        names.append(file)

scripts = [[] for _ in range(len(names)) ]
for i in xrange(len(names)):
    scripts[i] = np.genfromtxt("Data/text/film/topy/"+names[i],  delimiter="\t",dtype=character,skip_header=1)

names是.txt文件名列表,脚本是文件内容的列表解析。

那里应该有365个文件,而Mac我可以阅读所有这些文件,但是对于Windows,只能读取357个文件......

文件名如下:

l_10-Things-I-Hate-About-You.txt
l_12.txt
l_17-Again.txt
l_30-Minutes-or-Less.txt
l_48-Hrs..txt
l_50-50.txt
l_500-Days-of-Summer.txt
l_A-Serious-Man.txt
l_Adaptation.txt
l_Addams-Family,-The.txt
l_Adventures-of-Buckaroo-Banzai-Across-the-Eighth-Dimension,-The.txt
l_After-School-Special.txt

...

是否存在阻止Windows阅读的某些文件名?有谁知道差异,为什么会这样?超级赞赏!!

1 个答案:

答案 0 :(得分:0)

Windows对文件名中可包含的字符有限制。来自Naming Files, Paths, and Namespaces

  

使用当前代码页中的任何字符作为名称,包括扩展字符集(128-255)中的Unicode字符和字符,但以下情况除外:

     

以下保留字符:

     
      
  • <(小于)
  •   
  • >(大于)
  •   
  • :(冒号)
  •   
  • "(双引号)
  •   
  • /(正斜杠)
  •   
  • \(反斜杠)
  •   
  • |(垂直条或竖线)
  •   
  • ?(问号)
  •   
  • *(星号)

  •   
  • 整数值为零,有时也称为ASCII NUL字符。

  •   
  • 整数表示形式在1到31范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。
  •   

如果您的任何文件名包含其中一个字符,则在Windows系统上将无法读取。