博客列表 >Python(十)文件操作

Python(十)文件操作

Coco
Coco原创
2021年12月10日 13:19:06374浏览

  '''

  函数:

  函数参数:必备参数、默认参数、不定长参数(元组不定长 字典不定长)

  函数的定义不会被执行

  函数的调用才会被执行

  '''

  # n1="name",10,20,{"name":"bd","id":2},{"age":18}

  # zd={"name":"bd","id":2}

  # def fun(x,y=10,*args,**kwargs):

  # print(x,end=" ")

  # print(y,end=" ")

  # print(args,end=" ")

  # print(kwargs,end=" ")

  # # fun(n1) # name 10 (20, {'name': 'bd', 'id': 2}, {'age': 18}) {}

  # # fun("name",10,20,{"name":"bd","id":2},age=18) # name 10 (20, {'name': 'bd', 'id': 2}, {'age': 18}) {} name 10 (20, {'name': 'bd', 'id': 2}) {'age': 18}

  # # fun("name",10,20,zd,age=18) # name 10 (20, {'name': 'bd', 'id': 2}) {'age': 18}

  #

  # # 想将字典里的可以通过字典拆包的形式,这里是指**zd,进行参数传递

  # fun("name",10,20,**zd,age=18) # name 10 (20,) {'name': 'bd', 'id': 2, 'age': 18}

  '''

  闭包,外层函数,返回内层函数的函数体

  函数里面没有return,函数就没有返回值,变量接收返回None

  '''

  # def funa():

  # def fune():

  # print(123)

  # return fune

  # a=funa()

  # print(a) # e at 0x000002DD4C9F09D8>

  # a() # 123

  '''

  global:

  不可变数据需要声明,如字符串、数值、元组等;

  可变数据不需要声明,如列表、字典、集合。

  nonlocal:

  函数嵌套函数时,要使用外层函数变量时,需要声明

  '''

  # a=12

  # def fun():

  # global a

  # a +=1

  # b=a

  # def fune():

  # global a

  # a +=1

  # nonlocal b

  # print(a,b)

  # return fune

  # c=fun()

  # c() # 14 13

  '''函数递归'''

  # def fun(x):

  # if x==1:

  # return 1

  # else:

  # return x*fun(x-1)

  # a=fun(3)

  # print(a) # 6

  '''匿名函数:lambda'''

  # def f(x):

  # return x

  #

  # # or

  # f=lambda x:x

  #

  # print(f(2)) # 2

  # print(list(map(lambda x:x*10,(1,2,3)))) # [10, 20, 30]

  '''

  变量存储数据,永久保存 文件,

  open() 有返回值 返回文件本身

  里面有三个参数:

  文件路径:

  绝对路径:(从磁盘出发)

  【如】r'F:\03、Python技能提升'

  最好加上r,防止字符串转义

  相对路径:(从程序自身出发)

  上一级路径 ../

  同层级 ./或者不写

  下一级路径 /

  【注】程序和打开的文件在同一个最小文件夹里属于同层级,程序在的(即文件夹中箭头往左、往上)为上一级

  【如】r'../基础语法/10、阶段小结(2)'

  默认方式:

  r:只读模式

  w:先清空后写入,文件不存在则创建文件

  a:追加模式,文件不存在则创建文件

  +:更新模式,结合rwa模式

  b:二进制打开模式

  字符文件:txt,右键通过记事本打开能看懂的

  字节文件:png、音频,二进制文件

  编码格式

  read() 从哪里读取内容 如下f.read()

  tell() 查看光标

  seek() 调整光标

  '''

  # # 只读模式r

  # f=open('汉字.txt','r',encoding='UTF8') # 文件保存格式为UTF8,所以需要encoding='UTF8'声明编码格式为UTF8,使编码格式一致

  # print(f) # <_io.TextIOWrapper name='汉字.txt' mode='r' encoding='UTF8'>

  # print(f.read()) # 沉迷代码,渐感兴奋

  # # 写入模式w

  # d=open('写入与追加操作.txt','w',encoding='UTF8') # 先清空后写入,文件不存在则创建文件

  # # 将内容写入文件,若有内容,则先清空后写入

  # d.write('NIHAO')

  # # 保存文件

  # d.flush()

  # 追加模式a

  # d=open('./写入与追加操作.txt','a',encoding='UTF8')

  # d.write(',Hello')

  # d.flush()

  # # 更新模式+

  # e=open('更新模式.txt','w+',encoding='UTF8')

  # e.write('NIHAO')

  # e.flush()

  # print(e.tell()) # 5

  # e.seek(0) # 调整光标

  # print(e.read()) # NIHAO

  # e=open('更新模式.txt','bw+')

  # # e.write('NIHAO') # 报错TypeError: a bytes-like object is required, not 'str'

  # e.write(b'NIHAO') # b'NIHAO',b表示二进制

  # e.flush() # 保存文件

  # print(e.tell()) # 5

  # e.seek(0) # 调整光标

  # print(e.read()) # b'NIHAO'

  '''

  文件的写入:

  write() 单行写入

  writelines() 多行写入

  文件的读取:

  read() 读取全部,以字符串的形式返回

  readline() 读取单条

  readlines() 读取多条,以列表的形式返回,一行是一个元素

  '''

  # f=open('test.txt','a+',encoding='UTF8')

  # f.writelines(['NIHAO

  ','This Is Python ','cool'])

  # # 关闭,保存

  # f.seek(0)

  # print(f.readlines())

  # f.close()

  '''

  with:上下文函数

  执行完函数里面的代码,会自动关闭文件

  f.closed:检测文件是否关闭

  '''

  # with open('test.txt','a+',encoding='utf8') as f: # 即f=open()

  # f.seek(0)

  # print(f.read())

  # print(f.closed) # 可以检测文件是否关闭,若关闭则返回True

  '''

  IO文件流:创建在内存中的临时假文件 字符串 无编码格式限制

  '''

  # import io # 用来创建临时假文件

  # string=io.StringIO() # 创建临时假文件

  # string.write('123132')

  # string.seek(0)

  # print(string.read())

  '''

  IO:字节流:创建在内存中的临时假文件,字节数据

  '''

  # import io # 用来创建临时假文件

  # bys=io.BytesIO() # 用来创建临时的二进制假文件

  # bys.write(b'123132')

  # bys.seek(0)

  #

  # print(bys.read())

  # # or

  # print(bys.getvalue()) # 读取二进制文件的方法getvalue()

  '''

  os 模块:

  mkdir(目录名) 创建文件夹

  rmdir(目录名) 删除文件夹

  makedirs(目录\目录\目录) 创建多层文件夹

  removedirs(目录\目录\目录) 删除多层文件夹

  rename(文件名,新文件名) 更改文件名

  system() 调用系统命令

  listdir() 查看目录下面存在的文件,以列表形式返回

  getcwd() 返回当前文件路径

  remove() 删除文件

  path.join() 拼接路径

  【注】文件路径与上方的文件操作路径标准一致

  '''

  # import os

  # os.mkdir("bd") #创建文件夹bd

  # os.rmdir("bd") #删除文件夹bd

  # os.makedirs(r'bd\chenhong') # 创建多层文件夹bd\chenhong

  # os.removedirs(r'bd\chenhong') # 删除多层文件夹bd\chenhong

  # os.mkdir(r'bd')

  # osame(r'bd',r'ch') # 更改文件夹名

  # print(os.listdir(path='./')) # 默认有path='./'

  # print(os.getcwd()) # 打印文件路径

  # os.remove('cc.txt') # 删除文件

  # print(os.path.join('123','456')) # 拼接路径,123\456

  '''

  模块和包:

  一个模块就是一个py文件

  import 模块

  包就是放了很多QQ靓号出售平台模块(py文件)的文件夹

  from 包 import 模块

  库:

  同类型的py文件

  '''

  '''datetime模块'''

  # import datetime

  # print(datetime.datetime.now()) # 第一个datetime是包,第二个是模块,打印本地时间

  #

  # from datetime import datetime

  # print(datetime.now())

  if __name__=="__main__": # 自己本身运行,执行

  print("我没有被当做模块调用")

  else: # 被当做模块调用,执行

  print("怎么还没有走,我好着急")

  文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去!一起加油!

  Editor:Lonelyroots,网上资源千千万,不过一个答疑的人却也是很重要的,私信我,即可获取永久答疑权限!

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议