Python基础学习笔记(4)文件操作与测试

Python基础学习笔记(4)文件操作与高阶函数


前言

文件操作及部分高阶函数的学习。

一、文件操作

1.文件的路径

  绝对路径和相对路径
  对于Windows 系统,绝对路径以分区名加反斜杠开头,路径中的每个目录之间用反斜杠进行分隔。
  相对路径则是从一个参考位置出发,也就是说他表示从那个位置来看其他文件处于什么路径。用相对路径时,我们用点来表示,参照文件当前所在的目录,用点点表示更上一层的负目录。如果继续往上走,就用点点跟上斜杠或反斜杠进行分隔,这取决于操作系统后面再跟上点点表示当前文件所属目录的父目录。如果是往更下层走的话,同样以斜杠或反斜杠来分隔路径中的目录,所以可以看出来相对路径都是以点或者点开头的。
  Pycharm右键点击文件,选择复制路径引用,你就可以获得那个文件的绝对路径,以及以最顶层项目目录为参考的相对路径。能用绝对路径或相对路径来定位文件的位置后,我们就可以对文件进行操作了。

2.读文件

  用 Python 读文件的第一步操作得是先打开目标文件。我们用 open 函数里面先放上文件的路径,可以是相对路径,也可以是绝对路径。第二个参数是模式,模式是一个字符串,常见的模式包括 r 表示读取模式, w 表示写入模式。比如下面的函数:

open("/usr/demo/data.txt", "r")  #“r“  读取模式  (只读)         ‘w’写入模式(只写)

不写参数时默认为读取模式,在读取模式下,程序找不到你传入的文件名的话,就会报一个叫 file not found error 的错误,提示文件不存在。如果 open 函数执行成功,会返回一个文件对象,我们可以后续对它进行读取或写入操作。
针对读文件来说,文件对象有个read的方法,我们调用后它就会一次性读取文件里面所有内容,并以字符串形式进行返回。

open("/usr/demo/data.txt", "r") 
print(f.read())

如果你不想一次性读完整个文件,可以给 read 传一个数字,表示读多少字节,下一次调用 read 的时候就会从那个位置继续往下读。

f = open("./data.txt", "r", encoding="utf-8")
print(f.read(10)#会读第1-10个字节的文件内容
print(f.read(10))#会读第11-20个字节的文件内容

  实验下读文件,比如这个文件就在程序的根目录下,名字叫做data.txt 这样就可以用相对路径来读。
open(‘./data.txt’,‘r’) #这里引号和字符串一样单引号双引号都可以。
返回文件对象命名为f,代码就是

f=open(‘./data.txt’,'r')
content=f.read()
print(content)
f.close()  #这里还要关闭文件释放资源

  为了不要忘掉关闭文件,Python推荐用with open 来打开文件,具体语法为:

with open("./data.txt", "r", encoding="utf-8") as f:
    content=f.read()
    print(content)

记得前面要有缩进对该文件对象的所有的操作前面都得有缩进,那假如说第二行前面我不给缩进,它不在这个 with 下面的话,那运行到这行的时候文件对象其实已经被自动的关闭了,所以它就会产生一个报错,我们把缩进给它恢复正确再运行一下。

3.写文件

with open('./unknown.txt','w') as f:
  f.write('hello world'\n)   #注意这里不加换行符是不会自动换行的
  f.write('You are so beautiful')

用w的话会将文件中原有的部分都清空,而如要追加的话用参数“a”
  
  
那么每次都要先读再写吗,当然不是,可以用参数r+,这样调用读和写就都不会出错了。

下面是实际操作,
任务1:在一个新的名字为"poem.txt"的文件里,写入以下内容:
  我欲乘风归去,
  又恐琼楼玉宇,
  高处不胜寒。
任务2:在上面的"poem。txt"文件结尾处,添加以下两句:
  起舞弄清影,
  何似在人间。

任务1:

with open('./poem.txt','w',encoding='utf-8') as f:
  f.write('我欲乘风归去,\n又恐琼楼玉宇,\n高处不胜寒。\n')
 #写入的text文字如下:
我欲乘风归去,
又恐琼楼玉宇,
高处不胜寒。

任务2:

with open('./poem.txt','a',encoding='utf-8') as f:
  f.write('起舞弄清影,\n何似在人间。')

二、高阶函数

在函数中调用函数的方式就是高阶函数,

defcalculate_square(num) :
returnnumnum
def calculate_cube(num) :
returnnumnumnum
def calculate_plus_10(num):
returnnum +10
calculate_and_print(7, calculate_times_5)  #这个函数的就是7x5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值