Python 操作TXT、json文件数据

一、TXT文件

注意:Python对.txt文件的读写都是以字符或字符串形式。读取文本文件时, Python将其中的所有文本都解读为字符串。如果你读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转换为整数,或使用函数float()将其转换为浮点数。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。

1、读取
Python在当前执行的文件所在的目录中查找指定的文件。
filename = 'num.txt'
with open(filename, 'r') as file_to_read:
    while True:
        lines = file_to_read.readline()  # 整行读取数据
        if not lines:
            break
            pass

在这个程序中,第1行代码做了大量的工作。我们先来看看函数open()。要以任何方式使用文件——哪怕仅仅是打印其内容,都得先打开文件,这样才能访问它。函数open()接受一个参数:要打开的文件的名称,并返回一个表示文件的对象。在这里, Python将这个对象存储在我们将在后面使用的变量中。

关键字with:with在不再需要访问文件后将其关闭。在这个程序中,注意到我们调用了open(),但没有调用close();你也可以调用open()和close()来打开和关闭文件,但这样做时,如果程序存在bug,导致close()语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调用close(),你会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用前面所示的结构,可让Python去确定:你只管打开文件,并在需要时使用它, Python自会在合适的时候自动将其关闭。

2、读取

打开文件时,可指定读取模式('r')、 写入模式('w')、 附加模式('a')或让你能够读取和写入文件的模式('r+'),如果

你省略了模式实参, Python将以默认的只读模式打开文件。


如果你要写入的文件不存在,函数open()将自动创建它。

以写入('w')模式打开文件时千万要小心,因为如果指定的文件已经存在, Python将在返回文件对象前清空该文件。

filename = 'programming.txt'
with open(filename, 'w') as file_object:
    file_object.write("I lovep rogramming.")

3、对数据进行处理可利用Python自带语句strip等,或使用re模块

python中re模块使用:https://blog.csdn.net/yjj20007665/article/details/52370264

文件IO详细教程:http://www.runoob.com/python/python-files-io.html

                            http://www.jb51.net/article/87398.htm

二、json文件

模块json让你能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。你还可以使用json在Python程序之间分享数据。

1.json.dump():函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。

import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
    json.dump(numbers, f_obj)

2.json.load():

filename = 'numbers.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)

注意:

我们可以用json.dump()将多个数据写入json文件中,但要注意,多个数据的结构必须是字典,否则在使用json.load读取数据是会出错

 with open('num_done.json', 'w') as f:
    json.dump(value_a, f)#写入时可以一个个写入
    json.dump(value_d, f)
    json.dump(value_c, f)
    json.dump(value_d, num_done)

读取

with open('num_done.json', 'r') as num_read:
    numbers_a = json.load(num_read)   #读取时因为json储存了多个不相干的数据,因此会报错

正确的做法应该将数据放在一个字典里,再进行读写操作

value = {'value_a': value_a, 'value_b': value_b,
         'value_c': value_c, 'value_d': value_d, }
with open('num_done.json', 'w') as num_done:
    json.dump(value, num_done)
    # json.dump(value['value_a'], num_done) 每次对一个字典元素进行独立操作是可行的
    # json.dump(value['value_b'], num_done)
with open('num_done.json', 'r') as num_read:
    numbers_a = json.load(num_read)
    print(numbers_a['value_a'], '\n', value['value_b'])

其他操作参考:https://blog.csdn.net/xiongchengluo1129/article/details/78779418

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值