真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python自動化運維開發(fā)----基礎(chǔ)(十一)文件操作-創(chuàng)新互聯(lián)

1.文件的路徑

創(chuàng)新互聯(lián)是一家以網(wǎng)站設(shè)計建設(shè),小程序定制開發(fā)、網(wǎng)站開發(fā)設(shè)計,網(wǎng)絡(luò)軟件產(chǎn)品開發(fā),企業(yè)互聯(lián)網(wǎng)推廣服務(wù)為主的民營科技公司。主要業(yè)務(wù)涵蓋:為客戶提供網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站開發(fā)、域名申請、網(wǎng)站優(yōu)化排名、友情鏈接等服務(wù)領(lǐng)域。憑借建站老客戶口碑做市場,建設(shè)網(wǎng)站時,根據(jù)市場搜索規(guī)律和搜索引擎的排名收錄規(guī)律編程,全力為建站客戶設(shè)計制作排名好的網(wǎng)站,深受老客戶認(rèn)可和贊譽(yù)。

(1) 相對路徑:文件所在路徑

(2) 絕對路徑:從根路徑起的目錄

2.文件的類型

(1)文本文件 :  可以直接編寫的文件

(2)二進(jìn)制文件: 安裝包 ,圖片

3.mode相關(guān)

(1)關(guān)于文件操作的mode

mode  打開文件的方式

r      讀

w      寫

x      創(chuàng)建并寫


a      追加

r+     讀寫

w+    寫讀

x+     創(chuàng)建并寫讀

a+     追加讀

(2)關(guān)于文件的mode

mode   文本類型

t       文本(默認(rèn))

b      二進(jìn)制

4.文件打開、讀取、關(guān)閉的過程


文件打開


open('path', 'mode')

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

文件讀取

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

文件關(guān)閉

>>> handler.close()

5.讀文件


handler.read()  讀取所有的內(nèi)容

handler.read(size)  讀取文件size個字節(jié)內(nèi)容

handler.readline()  讀取文件一行

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

判斷文件是否讀完的依據(jù)是判斷最后一行是否為空

文件的可遍歷性

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


    {HOST}

    {PORT}

    {USER}


>>> handler.close()

對于二進(jìn)制文件的讀方式 只有 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.字符串和二進(jìn)制字符串的轉(zhuǎn)換


字符串轉(zhuǎn)換成二進(jìn)制字符串

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

二進(jìn)制字符串轉(zhuǎn)換成字符串

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

7.寫文件

寫文件 (文件不存在的時候創(chuàng)建)

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

當(dāng)文件存在的時候就會清空原來的文件,覆蓋之前的文件


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

8.小練習(xí)

把一個字典列表中的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()

從寫入的文件在在轉(zhuǎn)換成一個字典列表


#!/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.一些區(qū)別


x 和 w 的區(qū)別  w在文件存在會清空 文件的內(nèi)容 x 不會清空文件的內(nèi)容

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

a 是相當(dāng)于追加


>>> 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'

小總結(jié) 關(guān)于文件mode


r+ 文件必須存在

w+ 文件如果存在清空

x+ 文件必須不存在

a+ 只往文件的末尾寫

10.小練習(xí)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'))

結(jié)果如下:

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

    127.0.0.1
    80
    kk

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前文章:Python自動化運維開發(fā)----基礎(chǔ)(十一)文件操作-創(chuàng)新互聯(lián)
文章路徑:http://weahome.cn/article/epjej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部