Python 文件处理方法

这篇博客介绍了Python处理文件的各种模式,包括已创建文件的读写方式和未创建文件的处理。详细讲解了'r', 'w', 'a', 'r+', 'w+', 'a+'等模式的用途,以及如何在读取大文件时避免一次性加载到内存中的策略。" 13288161,1946683,C++中抽象数据类型与类的学习,"['C++', '数据结构', '面向对象编程']
#获取指定目录下面所有文件大小
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)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值