运维初学pythonDay03

在 Linux 系统中万物皆文件,所以我们不可避免的要和文件打交道,我们会常常对文件进行读和写的操作。例如 读写 追加 覆盖 下面用python实现

文件的读写

文件模式 r w a b 读 写 追加 以二进制模式打开

打开文件 xx=open("路径",mode="r/w/a/b")

文件操作xx.read(5)#读取文件前5个字符

关闭资源 xx.close()

基本语法

file_object = open(file_name,mode='r')

file_name:**表示我们要打开文件的路径

mode:**以怎样的方式打开文件

read方法-----读取文件

open 函数的第一个参数是要打开的文件名(文件名区分大小写)

如果文件 存在,返回 文件操作对象

如果文件 不存在,会 抛出异常

read 方法可以一次性 读入返回 文件的 所有内容

close 方法负责 关闭文件

如果 忘记关闭文件会造成系统资源消耗,而且会影响到后续对文件的访问

注意read 方法执行后,会把 文件指针 移动到 文件的末尾

fr = open("/etc/resolv.conf",mode='r')# 1.打开文件
# 2.读取文件
print(fr.read(5))# 读取前5个字符
print(fr.read(3))# 接着向后读3个字符
print(fr.read()) # 读取文件剩余的所有内容
print(fr.read()) # 什么都读取不到,因为指针已经在末尾了
fr.close()# 3.关闭资源

文件指针

所移动的内容 就是读取的内容

第一次打开文件 指针会指向文件开始位置

重新打开文件时,文件指针 重新指向文件的最 开始位置

readline 方法 —— 按行读取

  • readline 方法可以一次读取一行内容

  • 方法执行后,会把 文件指针 移动到下一行,准备再次读取

f=open("/etc/passwd",mode='r')
print(f.readline(),end="")#
print(f.readline())
print(f.readline())
f.close()

readlines方法

readlines() 方法读取所有(剩余的)行然后把它们作为一个 字符串列表 返回

# 1.打开文件
fr2 = open("/etc/hosts", mode="r")
# 2.读取文件
# 和for连用
# data = fr2.readlines()
# print("data:", data)
# print(data[0])  # 第一行
# print(data[1])  # 第二行
for item in fr2:  # 相当于:for item in fr2.readlines():
    print(item, end="")
# 3.关闭资源
fr2.close()
f=open("/etc/hosts",mode="r")
for i in f:
    print(i,end="")
f.close()

案例读取大文件

while 1:
    data=f.readline()
    #if data == "":#判断是否读取完成
    if len(data) == 0:#通用也能用于后面的二进制文件的读取
        break
    print(data,end="")
f.close()

文件写操作

write 方法 —— 写文件

  • write() 内建方法功能与 read()readline() 相反

  • 它把含有 文本数据二进制数据 的内容写入到文件中去

  • 对open进行覆盖

writelines方法

  • readlines() 一样,writelines() 方法是针对 列表 的操作

  • 它接受一个 字符串列表 作为参数,将他们写入文件

  • 行结束符并不会被自动加入,所以如果需要的话,必须再调用 writelines() 前给每行结尾加上行结束符

# write 方法
# 1.打开文件
fw = open("/opt/dc.txt", mode="w")  # w: write
# 2.写文件
fw.write("hello world\n")
fw.write("you are my baby girl~\n")
# 3.关闭资源
fw.close()
# writelines 方法
list01 = ["hello\n", "world\n", "nfx\n"]
# 1.打开文件
fw1 = open("/opt/tc.txt", mode="w")
# 2.写文件
fw1.writelines(list01)
# 3.关闭资源
fw1.close()
# hello
# world
# nfx

练习

# 模拟 cp 操作# 1. 创建 cp.py 文件# 2. 将 /usr/bin/ls "拷贝" 到/tmp 目录下# 3. 不要修改原始文件

fr = open("/usr/bin/ls",mode="rb")
fw = open("/tmp/myls",mode="wb")
while True:    
    data = fr.read(4096) #一次传4kB
    if len(data)== 0: #判断传完了没
        break
    fw.write(data)
fw.close()
fr.close()

with子句

with open() as fr1:

print(fr1)

  • with语句 是用来简化代码的

  • 在将打开文件的操作放在 with 语句中,代码块结束后,文件将自动关闭

  • 读写文件的逻辑没有变化,变得只是 写法

with open("/etc/hosts",mode='r') as f1:
    print(f1.read())

函数

  • 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用

  • 函数的使用包含两个步骤:

  1. 定义函数 —— 封装 独立的功能

  1. 调用函数 —— 享受 封装 的成果

def xiyiji(): #定义函数
    print("123")
    print("345")
    print("456")
xiyiji() #调用函数

定义函数时候的参数叫做刑事参数

调用函数时候的参数叫做实际参数

''' 文档说明字符串'''

def yhl(name,xb,nl):
    '''This is shuoming'''
    print("my name is :",name)
    print("yes he name is :",name)
    print("woshi :",name,xb,nl)
yhl("yhl","nan","23")
def get_sum(a,b=0):# 默认值要放在没有默认值的后面
    print(a+b)
get_sum(1)

位置参数

sys模块 sys.argv[1],sys.argv[2]

第一个元素(下标为0的)一定是文价名 之后是传进来的参数

你需要知道

1 读取一个文本文件的内容,有哪些方法?

read()默认值-1或者为-数值 全部读取

readline()一行 默认值-1或者为-数值 全部读取

readlines()剩余全部 返回字符串列表

2 打开文件时,文件对象的访问模式有r、w和a,b。它们的区别是什么?

r读取w写入a 追加 b以二进制模式打开

3 函数默认的返回值是什么?如何自己手工指定返回值,使用哪个关键字?

默认返回值是None

return xxx

4 python中如何使用位置参数?

sys模块的argv[]

sys.argv[0]表示代码本身文件路径

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

small white poplar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值