#获取指定目录下面所有文件大小
dir_Num = 0
totalSize = 0
fileNum = 0
def getDirAllFilesSize(path):
global dir_Num
global totalSize
global fileNum
for lists in os.listdir(path):
sub_path = os.path.join(path,lists)
if os.path.isfile(sub_path):
fileNum = fileNum+1
# 文件总大小
totalSize = totalSize + os.path.getsize(sub_path)
elif os.path.isdir(sub_path):
# 统计文件夹数量
dir_Num = dir_Num+1
getDirAllFilesSize(sub_path)
return totalSize
print getDirAllFilesSize('路径名')
2、日常中使用Python处理文件时的打开方式
1、文件已经创建:读:r :只读;
写: w:新建只写(清零重写),a:只写(附加只写)------两者都是不可读的状态
读写:r+:读写(如果先是读之后在去写则是追加,若只是写则是覆盖)、
2、文件还没有创建:写: w:新建只写,a:只写(附加只写)
读写:w+:新建读写(清零重写);a+:新建读写(附加写)
3、日常中读取文件的函数
------------>f.read():一次性读取文件的所有内容放在内存中;但是文件过大时就不适用了
------------->f.readline():逐行读取文本,结果是一个list;但是读取速度慢
------------->f.readlines():一次性读取文本的所有内容,结果是一个list
1、小文件可以愉快的这么干:
#当文件知道大小并且很小时:
try:
f = open('E:\\APK\\txt.txt', 'r')
print(f.read())
finally:
if f:
f.close()
with open('E:\\APK\\txt.txt', 'r') as myfile:
# myfile.readlines() 得到list,该列表的每一项是一行数据,
# 遍历列表读取所有的数据
for line in myfile.readlines():
print(line)
2、当文件很大时怎么破?可以采用分割读取,可以一段段读取;或者采用下面这种方式
with open('E:\\APK\\txt.txt', 'r') as fh:
#这里的fh是将其视为迭代器,会自动采取缓存和内存管理,所以不必担心大文件
for line in fh:
print(line)