Python文件I/O

python文件I/O
读取键盘输入
python提供input()内置函数从标准输入读取一行文本,默认的标准输入是键盘

str_1 = input("请输入:")
print(str_1)
# 请输入:li xiao ni
# li xiao ni

输出格式美化
python两种输出值的方式:表达式语句和print()函数。第三种是使用文件对象的write()方法,标准输出文件可以用sys.stdout引用。如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。
如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。
str(): 函数返回一个用户易读的表达形式。
repr(): 产生一个解释器易读的表达形式。

读写文件
open()会返回一个file对象,基本语法格式如下:

open(filename,mode)
# filename:包含了你要访问的文件名的字符串值
# mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

在这里插入图片描述


#打开一个文件
file1 = open("test.txt",'w')
file1.write("发动头脑风暴")
#关闭打开的文件
file1.close()

read(size)函数
读取一定数目的 数据,然后作为字符串返回。size为-1或忽略时则全部读出

#打开一个文件
file2 = open("test.txt")
#读出文件内容
str1 = file2.read()
print(str1)

readline()
会从文件中读取单独一行,换行符为\n。如果返回的为一个空字符串,则已经到最后一行

#打开一个文件
file2 = open("test.txt")
#读出文件内容
str1 = file2.readline()
print(str1)

readlines()
会从文件中读取所有行到一个列表内,如果设置可选参数sizehint,则读取指定长度的字节,并且按这些字节分割

str3 = file2.readlines()
print(str3)

write()函数
f.write(string)是将string的内容写入文件并返回字符串的长度
如果写入一些不是字符串的东西,那么将需要先进行转换成字符串

value = ('报效国家',321)
value = str(value)
file2.write(value)

tell()函数:
返回一个整数,代表文件对象在文件中的指针位置。该数值计量了自文件开头到指针处的比特数。需要改变文件对象指针话话,使用 f.seek(offset,from_what)。指针在该操作中从指定的引用位置移动 offset 比特,引用位置由 from_what 参数指定。 from_what 值为 0 表示自文件起始处开始,1 表示自当前文件指针位置开始,2 表示自文件末尾开始。from_what 可以忽略,其默认值为零,此时从文件头开始:

close()
关闭并释放所有的资源
使用 w i t h \color {red}with with关键字可以在文件使用完后自动关闭

with open('test.txt','r) as f:
	read_data = f.read()

pickle模块
实现了基本的数据序列和反序列化,通过pickle模块的序列化操作能够将程序中运行的对象信息保存到文件中去,永久存储。通过pickle模块的反序列化操作,能够从文件中创建上一次程序保存的对象。

pickle.dump(obj, file, [,protocol])
x = pickle.load(file)
with open("test.pkl",'ab+') as f:
    pickle.dump("dump添加",f)
with open("test.pkl",'rb') as f:
    print(pickle.load(f))

pickle协议和JSON(JavaScript Object Notation)的区别 :

1. JSON是一种文本序列化格式(它输出unicode文本,虽然大部分时间它被编码utf-8),而pickle是二进制序列化格式;
2. JSON是人类可读的,而pickle则不是;
3. JSON是可互操作的,并且在Python生态系统之外广泛使用,而pickle是特定于Python的;
默认情况下,JSON只能表示Python内置类型的子集,而不能表示自定义类; pickle可以表示极其庞大的Python类型(其中许多是自动的,通过巧妙地使用Python的内省工具;复杂的案例可以通过实现特定的对象API来解决)

文件对象常用函数

# file.close():关闭文件,文件不能在进行读写操作
# file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入
# file.fileno():返回一个整型的文件描述符
# file.isatty():如果连接到一个终端设备返回true,否则返回false
# file.read():file.readline([size]);file.readlines():file.seek(offset,whence);file.tell()
# file.truncate([size]):从文件的首航首字符开始截断,阶段为size个字符,无size表示从当前位置截断,后面的字符全部删除
# file.write(str):file.writelines(seq):向文件写入一个序列字符串列表,如果需要换行则自己加入每行的换行符

异常
try except else finally

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值