Python学习笔记——刻意练习17天(Day7)

文件与文件系统

open()

  1. Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
  2. 注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
    open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
#file: 必需,文件路径(相对或者绝对路径)。
#mode: 可选,文件打开模式
#buffering: 设置缓冲
#encoding: 一般使用utf8
#errors: 报错级别
#newline: 区分换行符
#closefd: 传入的file参数类型
#opener:

文件打开模式和对象方法

在这里插入图片描述

os模块中关于文件/目录常用的函数使用方法

在这里插入图片描述

os.path模块中关于路径常用的函数使用方法

在这里插入图片描述

示例

  1. python处理文件中的数据,可以使用while语句来循环读取文件中的行
while True:
    line=f.readline()
if not line:
    break
  1. for来遍历文件中所有的行
def file_hdl(name='python.txt'):
         f=open(name)
         res=0
         i=0
         for line in f:
                  i+=1
                  print('第%s行的数据为:'% line.strip(),line)#focus on the format
                  print(line)
                  res+=int(line)
         print("the sum of these numbers",res)
         f.close()
if __name__== '__main__':
         file_hdl()
# 这段代码定义了一个函数,它的功能是打开一个文件,迭代处理文件中的每一行数据,并把每一行数据转换为一个整数,然后累加并输出。
  1. python中可以使用with语句来管理文件的打开和关闭
def file_hdl(name='python.txt'):
         with open(name) as f:
                  res=0
                  i=0
                  for line in f:
                           i+=1
                           print(line.strip())
                           res+=int(line)
                  print("the sum of these numbers",res)
if __name__== '__main__':
         file_hdl()
# 一般情况下载文件处理之前需要打开文件,文件处理结束之后还需要关闭来文件
  1. 用fileinput操作文件
    fileinput模块提供了一个以行模式循环处理一个或者多个文件内容,它实现了对文件中行的懒惰迭代,读取时不需要把文件内容放入内存,这样可以提高程序的效率。
函数功能
input()返回能够用于迭代一个或多个文件中所有行的对象
filename()返回当前文件的名称
lineno()返回当前读取行的数量
isfirstline()返回当前行是否是文件中的第一行
filelineno()返回当前读取行在文件中的行数
import fileinput
def demo_fileinput():
         with fileinput.input('python.txt') as lines:
                  for line in lines:
                           print("the line number is %d"%fileinput.lineno())
                           print(line.strip())
                  print(fileinput.filename())
if __name__=='__main__':
         demo_fileinput()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值