python读写文件

一、python自带读写文件

1、打开(open)文件方式

r
w
a追加
r+ (r+w)可读可写,文件若不存在就报错(IOError)
w+ (w+r)可读可写,文件若不存在就创建
a+ (a+r)可追加可写,文件若不存在就创建

对应的,如果是二进制文件,就都加一个b:

'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'

2、读文件

三种方式:

方法描述
read()/read(size)

一次读取文件所有内容,返回一个str。加入size: 每次最多读取指定长度的内容,返回一个str;在Python2中size指定的是字节长度,在Python3中size指定的是字符长度

readlines()一次读取文件所有内容,按行返回一个list
readline()每次只读取一行内容

例如:读下面这个文件1.txt:

hello
world
!
zhj
fly
123

(1)read()读取整个文件(结果即上面文件内容):

def read_file():
    with open(filepath, 'r') as f:
        res = f.read()
        print(res)

(2)read(size):

def read_file():
    with open(filepath, 'r') as f:
        while True:
            res = f.read(10)
            if not res:
                break
            print(res, end='')

(3)readlines():

def read_file():
    with open(filepath, 'r') as f:
        res = f.readlines()
        for _res in res:
            print(_res, end='')

(4)readline():

def read_file():
    with open(filepath, 'r') as f:
        while True:
            res = f.readline()
            if not res:
                break
            print(res, end='')

3、写文件

写文件与读类似,只是open的时候打开方式不同。

python文件对象提供了两个“写”方法: write() 和 writelines()。

  • write()方法和read()、readline()方法对应,是将字符串写入到文件中。
  • writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。

另外,写的内容必须是str,否则会报错。

例如:

(1)write写:

def read_file():
    with open(filepath, 'w') as f:
        res = 'hello world!'
        f.write(res)

(2)writelines写:

def read_file():
    with open(filepath, 'w') as f:
        res = ['hello\nworld\nzhj\nfly\n']
        f.writelines(res)

结果:

hello
world
zhj
fly

二、读写csv文件

使用csv模块读写

1、读csv文件

原文件:

a 1 2 3
b 4 5 6
c 7 8 9
d 10 11 12
def read_file():
    with open(filepath, 'r') as f:
        lines = csv.reader(f, delimiter=' ')
        for line in lines:
            print(line)

结果:

['a', '1', '2', '3']
['b', '4', '5', '6']
['c', '7', '8', '9']
['d', '10', '11', '12']

2、写csv文件

def read_file():
    file = [['a', '1', '2', '3'], ['b', '4', '5', '6'], ['c', '7', '8', '9'], ['d', '10', '11', '12']]
    with open(filepath, 'w', newline='') as f:
        writer = csv.writer(f, delimiter=' ')
        for line in file:
            writer.writerow(line

三、读写json文件

1、读json

从字符串读取json:

json_obj = json.loads(str, object_pairs_hook=OrderedDict)

从文件读取json:

with open(filepath, 'r') as f
    json_obj = json.load(f, object_pairs_hook=OrderedDict)

2、写json

写入字符串:

str = json.dumps(json_obj, sort_keys=True, indent=4)

写入文件:

with open(filepath) as f:
    json.dump(json_obj, f, sort_keys=True, indent=4)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值