Python自动化运维开发----基础(十一)文件操作
admin
2023-07-13 07:04:21
0次

1.文件的路径

(1) 相对路径:文件所在路径

(2) 绝对路径:从根路径起的目录

2.文件的类型

(1)文本文件  :   可以直接编写的文件

(2)二进制文件:  安装包 ,图片

3.mode相关

(1)关于文件操作的mode

mode    打开文件的方式

r            读

w           写

x           创建并写

a           追加

r+         读写

w+        写读

x+         创建并写读

a+         追加读

(2)关于文件的mode

mode     文本类型

t             文本(默认)

b            二进制

4.文件打开、读取、关闭的过程

文件打开

open('path', 'mode')

>>> handler = open('tpl.xml', 'rt')

文件读取

>>> handler.read()
'\n    {HOST}\n    {PORT}\n    {USER}\n\n'

文件关闭

>>> handler.close()

5.读文件

handler.read()  读取所有的内容

handler.read(size)  读取文件size个字节内容

handler.readline()  读取文件一行

handler.readlines()  读取文件所有行

判断文件是否读完的依据是判断最后一行是否为空

文件的可遍历性

>>> handler = open('tpl.xml', 'rt')
>>> for lines in handler:
...     print(lines)
... 


    {HOST}

    {PORT}

    {USER}


>>> handler.close()

对于二进制文件的读方式 只有 read 和 read(size)

read方式读取

>>> handler = open('1.py','rb')
>>> handler.read()
b'#!/usr/bin/python\n\na = 1\nb = 2\nc = [1,2]\n\ndef test():\n    a = 4 \n    b = 5\n    c = []\n    c.append(1)\n    print(a,b,c)\n\ntest()\nprint(a,b,c)\n'
>>> handler.close()

read(size)

>>> handler = open('1.py','rb')
>>> SIZE = 10
>>> while True:
...     b_read = handler.read(SIZE)
...     if b_read == b'':
...         break
...     print(b_read)
... 
b'#!/usr/bin'
b'/python\n\na'
b' = 1\nb = 2'
b'\nc = [1,2]'
b'\n\ndef test'
b'():\n    a '
b'= 4 \n    b'
b' = 5\n    c'
b' = []\n    '
b'c.append(1'
b')\n    prin'
b't(a,b,c)\n\n'
b'test()\npri'
b'nt(a,b,c)\n'

6.字符串和二进制字符串的转换

字符串转换成二进制字符串

>>> "abc".encode()
b'abc'

二进制字符串转换成字符串

>>> b'abc'.decode()
'abc'

7.写文件

写文件 (文件不存在的时候创建)

>>> handler = open('2.txt', 'wt')
>>> handler.write('123')
3
>>> handler.close()

当文件存在的时候就会清空原来的文件,覆盖之前的文件

>>> handler = open('2.txt', 'wt')
>>> handler.write('111')
3
>>> handler.flush()
>>> handler.close()

8.小练习

把一个字典列表中的value 拿出来写入到一个文件里

#!/usr/bin/python

students = [
    {'id' : 1, 'name' : 'likuan', 'sex' : 'm', 'age' : 25},
    {'id' : 2, 'name' : 'lizhi', 'sex' : 'm', 'age' : 22},
]
path = 'student.txt'
handler = open(path, 'wt')
for student in students:
    print(student)
    print('{0},{1},{2},{3}'.format(student['id'],student['name'],student['sex'],student['age']))
    handler.write('{0},{1},{2},{3}'.format(student['id'],student['name'],student['sex'],student['age']))
    handler.write('\n')
handler.close()

从写入的文件在在转换成一个字典列表

#!/usr/bin/python
path = 'student.txt'
students = []
handler = open(path, 'rt')
for line in handler:
    line = line.strip()
    id, name, sex, age = line.split(',')
    students.append({'id':id,'name': name,'sex': sex,'age': age})
handler.close()
print(students)

9.一些区别

x 和 w 的区别    w在文件存在会清空 文件的内容  x 不会清空文件的内容

>>> handler = open('2.txt', 'xt')
Traceback (most recent call last):
  File "", line 1, in 
FileExistsError: [Errno 17] File exists: '2.txt'

a 是相当于追加

>>> handler = open('2.txt', 'at')
>>> handler.write('test')
4
>>> handler.close()

文件指针 tell()查看文件指针的位置,seek() 重置文件指针的位置

>>> handler = open('2.txt', 'rt')
>>> handler.read()
'111test'
>>> handler.tell()
7
>>> handler.read()
''
>>> handler.seek(0,0)
0
>>> handler.read()   
'111test'

小总结  关于文件mode

r+ 文件必须存在

w+ 文件如果存在清空

x+ 文件必须不存在

a+ 只往文件的末尾写

10.小练习2定义一个模板文件

例如模板文件中的配置

 

    {HOST}

    {PORT}

    {USER}

通过format传值

#!/usr/bin/python
 
tpl_file = 'tpl.xml'
conf_file = 'mysql.xml'
tpl = open(tpl_file).read()
open(conf_file, 'wt').write(tpl.format(HOST='127.0.0.1',PORT='80',USER='kk'))

结果如下:

[root@Devop-python 19-1-20]# cat mysql.xml

    127.0.0.1
    80
    kk

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...