python3 文件操作

下面介绍文件的一些基本操作
打开文件:
file_object = open(file_name, access_mode=’r’, buffering=-1)

file_name:是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径.
access_mode:是一个代表打开文件模式的字符串,下表是字符串的枚举及含义。

文件模式操作
r以读方式打开
rU 或 Ua以读方式打开, 同时提供通用换行符支持 (PEP 278)
w以写方式打开 (必要时清空,不存在时则创建新文件)
a以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+以读写模式打开
w+以读写模式打开 (参见 w )
a+以读写模式打开 (参见 a )
rb以二进制读模式打开
wb以二进制写模式打开 (参见 w )
ab以二进制追加模式打开 (参见 a )
rb+以二进制读写模式打开 (参见 r+ )
wb+以二进制读写模式打开 (参见 w+ )
ab+以二进制读写模式打开 (参见 a+ )

buffering:其中 0 表示不缓冲, 1表示只缓冲一行数据, 任何其它大于 1 的值代表使用给定值作为缓冲区大小. 不提供该参数或者给定负值代表使用系统默认缓冲机制

先介绍下os模块的一些属性吧
现在三种主流操作系统的换行符及路径分格符都不尽相同,os模块会根据不同的操作系统得到对应的值
os.linesep 代表换行符

下面来实际操作下吧:

#!/usr/bin/env python

"文件操作"

import os

#以读写方式打开文件
fobj = open('test.txt','w+')

if (fobj.writable()):
    # write 向文件中写入字符串
    # 该方法会返回写入的字符数
    fobj.write('I am HanMeiMei%s' % os.linesep)
    fobj.write('I love you %s' % os.linesep)

    # writelines 向文件中写入列表的所有数据,也可以是一个字符串
    fobj.writelines('writelines %s' % os.linesep)
    fobj.writelines([
        'writelines1 %s' % os.linesep,
        'writelines2 %s' % os.linesep,
    ])
if (fobj.readable()):
    # 注意:写文件的时候要慎重用seek
    # 文件的字符数
    print('写入文件的字符为' % fobj.tell())

    # 移动文件指针到文件的起始位置
    if (fobj.seekable()):
        fobj.seek(0)

    # 读取文件全部内容 read 中可以传入要读取的字符数
    print('文件的内容为:%s' % fobj.read())

    # 如果还想继续读取文件就需要移动文件指针到文件的起始位置
    if (fobj.seekable()):
        fobj.seek(0)

    # 读取第一行文件
    print('第一行的内容为: %s' % fobj.readline())
    # 将第二行到文件末尾的内容读入到列表中
    print('读到文件的列表为:%s' % fobj.readlines())

    # 还有一种最高效的办法是进行文件的迭代
    if (fobj.seekable()):
        fobj.seek(0) #移动文件指针到文件的起始位置
    for line in fobj:
        print(line,end='')

# 为什么没有调用flush呢,其实 seek 和 tell 都会将缓冲区的数据写入文件的
# 文件的属性
fname = fobj.name # 文件名
fencoding = fobj.encoding # 文件的字符集
fclose = fobj.closed #文件是否已关闭
fmode = fobj.mode #文件的打开模式
fnewlines = fobj.newlines #文件的换行符
ferrors = fobj.errors # 文件的错误级别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值