python_数据储存以及有关文件的文件操作

很多程序都要求用户输入某种信息,
程序都把用户提供的信息存储在列表和字典等数据结构中,
用户关闭程序时,你几乎总是要保存他们的信息:
一种简单的方式是使用模块json来存储数据
(在python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互)
模块json让你能够将简单的Python数据结构转存到文件中,
并在程序再次运行时加载该文件中的数据,
你还可以使用json在Python程序之间分享数据,
更重要的是,json数据格式并非Python专用的,
这让你能够将以json格式存储的数据与使用其他编程语言的人分享

注意:json(javascriptObject notation)格式最初是为javascript开发的,但随后成了一种常见格式,
被包括python在内的众多语言采用

import json
number = [1,2,3,4]

with open('numbers.json','w') as f_obj:
    # 我们使用函数json.dump()将数字列表存储到文件中
    json.dump(number,f_obj)
import json
filename = 'numbers.json'
with open(filename) as f_obj:
    # 我们使用函数json.load加载存储在numbers.json中的信息
    # 并将其存储到变量numbers中
    numbers = json.load(f_obj)
print numbers
import json
username = raw_input('what is your name ?')
filename = 'username.json'
with open(filename,'a') as f_obj:
    json.dump(username,f_obj)
    print 'We will rember you when you come back, %s' % username

如果以前存储了用户,就显示
否则,就提示用户输入用户名并存储它

import json
filename = "username.json"
try:
    with open(filename) as f_obj:
        username = json.load(f_obj)
except ValueError:
    username = raw_input("What is you name? ")
    with open(filename,"w") as f_obj:
        json.dump(username,f_obj)
        print "We'll remember you when you come back %s" % username
#依赖于try代码块成功执行的代码都应放到else代码块中:
else:
    print "Welcome back %s " % username

文件:
操作文件的函数/方法
在python中要操作文件需要记住的1个函数和3个方法
#python中一切皆对象
open :打开文件,并且返回文件操作对象
read :将文件内容读取到内存
write :将指定内容写入文件
close :关闭文件
open函数负责打开文件,宾且返回文件对象
read/write/close三个方法都需要通过文件对象来调用

read方法–读取文件
open函数的第一个参数是要打开的文件名(文件名区分大小写)
如果文件存在,返回文件操作对象
如果文件不存在,会抛出异常
read方法可以一次性读入并返回文件的所有内容
close方法负责关闭文件

# 如果忘记关闭文件,会造成系统消耗,而且会影响到后续对文件的访问
# 1.打开文件
file = open('REDME')

# 2.操作文件 读/写
# read方法:读取文件内容(一次性返回文件的所有内容)
text = file.read()
print text

# 3.关闭文件
# close方法:负责关闭文件
file.close()

# 在开发中,通常会先编写打开和关闭的代码

文件指针:
文件指针标记从哪个位置开始读取数据
第一次打开文件时,通常文件指针会指向文件的开始位置
当执行了read方法后,文件指针会移动到读取内容的末尾

# 1.打开文件
file = open('REDME')

# 2.操作文件 读/写
# read方法:读取文件内容(一次性返回文件的所有内容)
text = file.read()
print text

print '*' * 50

# 第一次读取的时候,文件指针移动到了文件的末尾
# 再次调用不会读取到任何内容

text = file.read()
print text

# 3.关闭文件
# close方法:负责关闭文件
file.close()
打开文件的方式:
    name = open('文件名','访问方式')
# 以写的方式打开文件,如果文件存在会被覆盖,如果文件不存在,创建新文件
#1.打开文件
file = open('REDME','w')
# 2.写入文件
file.write('@#@!$@!$!')
# 3.关闭文件
file.close()
# 以追加方式打开文件
# 如果该文件存在,文件指针会放在文件的末尾
# 如果文件不存在,创建文件并写入
# 1.打开文件
file = open('REDME','a')
# 2.写入文件
file.write('linux')
# 3.关闭文件
file.close()
按行读取文件
        read方法默认会把文件的所有内容一次性读到内存
        如果文件太大,对内存的占用会非常严重
readline方法:
    readline方法可以一次性读取一行内容
    方法执行后,会把文件指针移动到下一行,准备再次读取
"""
# 读取大文件的正确姿势

file = open('REDME')
# 为什么要写成死循环:因为我们不知道要读取的文件有多少行
while True:
    text = file.readline()
    # 如果文件指针到文件的最后一行,那么就读不到内容了
    if not text:
        break
    # 每读取一个行,末尾都已经有一个\n
    print text
file.close()
# 1.打开文件
# 源文件以只读的方式打开
file_read = open('REDME')
# 目标文件以写的方式打开
file_write = open('README_COPY','w')

# 从源文件中读取内容
text = file_read.read()
# 将读取到的内容写到目标文件中
file_write.write(text)

# 关闭文件
file_read.close()
file_write.close()
# 1.打开文件
file_read = open('REDME')
file_write = open('README_COPY','w')

# 读写
while True:
    text = file_read.readline()
    if not text:
        break
    file_write.write(text)

# 关闭
file_read.close()
file_write.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值