Python 读写文件

一、读写数据时会有什么坑,怎么做异常保护

  1. 不同的数据类型进行深拷贝或浅拷贝时的结果会有所区别。

      深拷贝,拷贝的程度深,自己新开辟了一块内存,将被拷贝内容全部拷贝过来了;
    
      浅拷贝,拷贝的程度浅,只拷贝原数据的首地址,然后通过原数据的首地址,去获取内容。
    
  2. 在Python中,参数的传递是根据数据类型分为可变类型和不可变类型的。

      比如参数采用列表形式,就可被改变,而采用元祖,就可不被修改。
    
  3. 提取超过列表长度的值会报IndexError的错误,而提取字典中不存在的键会报KeyError的错误,还有对0进行除或取模会报ZeroDivisionError错误,浮点操作失败时会报FloatingPointError错误,这些因为数据类型报错的都需要进行异常保护。

一、方法汇总

方法一:python内置函数

  • open()、close()、
  • read()、readline()、readlines()、
  • write()、writelines()等方法

方法二:Pandas 库

  • read_csv()、to_csv()、read_excel()、to_excel()、read_json()、to_json()

二、open()

file = open('filename.txt', mode = 'r')
file.close()

意:根据指定文件名或标识符来打开文件,获取到的 file 是一个文件对象。

模打开式描述
‘r’「只读」;文件不存在会报错;默认指针指向文件开头
‘w’「只写」;文件不存在,则根据 filename 创建相应的文件;文件已存在,则会覆盖原文件
‘a’「追加」;文件已存在,文件指针指向文件尾部,将内容追加在原文件后面;如果文件不存在,则新建文件写入
‘t’以「文本文件」模式打开文件
‘b’以「二进制」模式打开文件,主要用于打开图片、音频等非文本文件
‘+’打开文件并允许更新(可读可写);即使用参数 r+、w+、a+ 都可以读写文件
区别:r+ 不存在会报错; w+ 不存在会新建;a+ 追加写入

三、python内置函数 读取文件

for循环读取文件

file = open('filename.txt', 'r')
num = 1
for con in file:     # 循环
	print('第%d行' % num, con)
	num += 1
file.close()

read方法

改良,使用read方法

file = open('filename.txt', 'r')
con = file.read()    # 将整个文件读取出来
print(con)
file.close()
con = file.read(size)  # 

size表示要从文件中读取的数据的长度,单位为字节。如果没有指定size,那么就表示读取文件的全部数据。

readline方法

一行一行地读取文件中的数据

file = open('filename.txt', 'r')
con = file.readline()
print("1:%s"%content)
content = file.readline()
print("2:%s"%content)
file.close()

readlines方法

读取所有行的信息。
readlines() 和 read() 的区别,在于读取的「颗粒大小」,前者颗粒较大以行为单位,后者颗粒较小以字节为单位。

file = open('filename.txt', 'r')
con = file.readlines()
print(con)
hello.close()

readlines方法会返回一个列表,列表中的每一个元素为文件中的每一行数据。

四、 try…finally…

读写文件的时候,经常会出现一些 IOError 错误异常,建议写在 try…finally… 异常捕获块中。

try:
	file = open('filename.txt', 'r')
	con = file.readlines()
	print(con)
finally:
	print('出问题了')
	hello.close()

五、with…as… 语句

凡是打开的文件,切记要使用close方法关闭。即使文件会在程序退出后自动关闭,但是考虑到数据的安全性,在每次使用完文件后,都要使用close方法关闭文件,否则一旦程序崩溃,很可能导致文件中的数据没有保存。

with…as… 语句,会在你访问完文件之后,根据上下文自动调用 close() 方法来关闭。

with open('filename.txt', 'r') as file:  # 等同于 file = open('filename.txt', 'r')   +  file.close()
	con = file.readlines()
	print(con)

六、python内置 写入文件

write()

with open('hello.txt') as hello :
    hello.write("I Love You")

默认指定‘w’ 模式。

writelines()

txtlist = ['Python 私教\n', 'Java 私教\n', 'C++ 私教\n']   # 创建一个列表
with open('hello.txt') as hello :
    hello.writelines(txtlist)

七、input() 获取输入

Python中如何获取用户的输入

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值