尝试访问多个文件的大小时,以下程序出了什么问题?
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)
答案 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")
(注意使用原始字符串前缀以避免必须转义反斜杠)。