这可能是一个天真的问题,因为我绝对是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阅读的某些文件名?有谁知道差异,为什么会这样?超级赞赏!!
答案 0 :(得分:0)
Windows对文件名中可包含的字符有限制。来自Naming Files, Paths, and Namespaces:
使用当前代码页中的任何字符作为名称,包括扩展字符集(128-255)中的Unicode字符和字符,但以下情况除外:
以下保留字符:
<
(小于)>
(大于):
(冒号)"
(双引号)/
(正斜杠)\
(反斜杠)|
(垂直条或竖线)?
(问号)
*
(星号)整数值为零,有时也称为ASCII NUL字符。
- 整数表示形式在1到31范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。
如果您的任何文件名包含其中一个字符,则在Windows系统上将无法读取。