OSError:[Errno 2]在Python中读取";gz“;文件
我有一个包含OSError:[Errno 2]在Python中读取";gz“;文件,python,Python,我有一个包含“.gz”文件的文件夹 import matplotlib.pylab as plt, os from os import listdir from os.path import isfile, join mypath = '/export/students/sait/yedek' onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] size = [] for a in range(len(
“.gz”
文件的文件夹
import matplotlib.pylab as plt, os
from os import listdir
from os.path import isfile, join
mypath = '/export/students/sait/yedek'
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
size = []
for a in range(len(onlyfiles)):
print onlyfiles[a]
size.append(os.path.getsize(onlyfiles[a]))
print size[a]
当我想读取尺寸时,会出现这样一个错误:
"OSError: [Errno 2] No such file or directory: 'rgb-0.ppm.gz'"
这个智能问题在哪里?您的
仅文件
包含文件的基本名称,而不是文件的完整路径。(您的工作目录似乎不是mypath
)
您要么需要修复仅文件
创建:
onlyfiles=[join(mypath,f)表示listdir(mypath)中的f,如果isfile(join(mypath,f))]
或者您也可以在for
-循环之前os.chdir(mypath)
import matplotlib.pylab as plt, os
from os import listdir
from os.path import isfile, join
mypath = os.path.join(os.getcwd(),'/export/students/sait/yedek')
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
size = []
for file in onlyfiles:
print file
file_size = os.path.getsize(file)
print file_size
size.append(file_size)
试试这个,这对我来说是一个令人惊讶的问题,但我只有一个建议可以让你改进for循环:
for file in onlyfiles:
print(file);append(os.path.getsize(文件));print(size[-1])
-这将直接在列表元素上迭代,而不是在Python中通常使用的索引。看起来您实际上并没有将连接路径添加到列表中,只是f。这是你想要的吗?