尝试访问多个文件的大小时,以下程序有什么问题?

时间:2013-09-01 11:52:55

标签: python

尝试访问多个文件的大小时,以下程序出了什么问题?

import os, glob
cwd = "C:\\temp"
files = glob.glob (cwd + "\\.jpg")
with open ("file_size.txt", "w") as outfile:
    for file in files:
        get_size = os.path.getsize (file)
        outfile.writelines (get_size)

3 个答案:

答案 0 :(得分:0)

您无法将号码传递给file.writelines()

print >>outfile, get_size

答案 1 :(得分:0)

writelines()用于将iterables写入文件:

  

将一串字符串写入文件。序列可以是任何序列   可迭代对象生成字符串,通常是字符串列表。

writelines()替换为write()并使用str(get_size)

outfile.write(str(get_size))

这会将每个文件大小写入文件中的新行。

或者,或者,将大小收集到列表中,然后通过writelines()

写入
filesizes = [str((os.path.getsize(file)) for file in files]
with open ("file_size.txt", "w") as outfile:
    outfile.writelines(filesizes)

答案 2 :(得分:0)

glob.glob使用shell扩展。 c:\temp\.jpg只匹配名为.jpg的文件。你的意思是

files = glob.glob(cwd + r'\*.jpg")

(注意使用原始字符串前缀以避免必须转义反斜杠)。