尝试访问多个文件的大小时,以下程序有什么问题?
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)
尝试访问多个文件的大小时,以下程序有什么问题?
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)
writelines()用于将可迭代对象写入文件:
将一系列字符串写入文件。序列可以是任何产生字符串的可迭代对象,通常是字符串列表。
替换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)
glob.glob
使用外壳扩展。c:\temp\.jpg
只会匹配一个名为.jpg
. 你的意思是
files = glob.glob(cwd + r'\*.jpg")
(注意使用原始字符串前缀以避免必须转义反斜杠)。
您不能将数字传递给file.writelines()
.
print >>outfile, get_size