python针对文本的操作
生活随笔
收集整理的這篇文章主要介紹了
python针对文本的操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python文件的處理
1: 我們可以把文件想象成一個倉庫;可以供我們操作使用
針對文件的操作流程為:打開文件并且創建對象;對該文件內容進行 讀取 寫入 刪除 修改等操作關閉并且保存2: 常用操作函數
open()函數打開文件并創建對象參數:路徑信息(如果不在當前路徑下;需要使用絕對路徑進行定位) 打開方式: r 默認讀模式<如果文件不存在則拋出異常>w 寫入模式;使用該模式會清空文本中原有的內容 <如果該文件不存在則會創建>x 它也是寫入模式;如果該文件存在則會拋出異常a 它是對文件進行追加;不會覆蓋文件的原始內容encoding參數指定該文本的編碼格式colse()使用該函數進行關閉我們創建的文件對象2.1: 也可以使用with模式進行操作文件;這樣我們就不會忘記使用close函數關閉文件了
with open('python.txt','r',encoding='utf8') as filename:print(filename.read()) print(filename.read()) # 拋出異常信息 ValueError: I/O operation on closed file. 這是因為我們調用的文件對象已經關閉了3: 測試文件是否可讀:
readable() 測試創建的文件對象是否可讀;它的返回值是False 和 true我們可以利用這個函數進行判斷該文件是否可讀 wireable()測試文件時候可寫 filename = open('python.txt','r',encoding='utf8') aa = filename.readable() print(aa) # 輸出打印true 證明這個文件是可讀的4: 針對文件對象進行操作的函數
read()函數讀文件中所有的內容 readline()讀取文件一行的內容也可以 讀取該行的指定參數 readlines()讀取文件中的內容添加到列表中去;換行用\n代替4.1: 也是可以使用for循環進行輸出文件中的內容
filename = open('python.txt','r',encoding='utf8') print(filename.readline(4)) filename.close() # 如果我們不關閉該對象的話;使用readline()讀取的4個長度是不會被讀取的 filename = open('python.txt','r') for line in filename:print(line)5: 異常處理
如何處理異常:<通過異常處理可以發現錯誤所在> 異常處理結構: try except 另一種處理異常結構:try: except: else: <如果try拋出異常則執行except代碼;反之執行else中的代碼>try: except: finally: <finally中的代碼是必執行的>例如上面調用的with操作文件報異常我們就可以使用它進行處理異常進行回顯
try:with open('python.txt','r',encoding='utf8') as filename:print(filename.read())print(filename.read()) # 拋出異常信息 ValueError: I/O operation on closed file. except:print('文件對象已經被關閉') # 輸出文件對象已經被關閉6:小測試
在特定的文件內進行提取特定的一段內容:例如在當前目錄下存在一個txt文件;該文件中的內容為:alert any any -> any (msg:"this is a test";flow:"established")在文本中具有多行類似此內容的數據<msg內容不同>;通過python我們將msg中的內容提取出來 import sys import os dirs = '' msg = [] list = os.listdir('./') # 返回的當前目錄下面所有文件和目錄的名字列表 # print(list) for i in range(0,len(list)):dirs = list[i]if '.txt' in dirs:with open(dirs,'r',encoding='utf8') as file:line = file.readlines()# print(line)for i in range(0,len(line)):if 'alert' and 'msg' in line[i]:msgnum = line[i].index('msg:"')msgnum1 = line[i].index('";flow:')msg.append(line[i][msgnum+5:msgnum1]) with open('Msg.txt','w',encoding='utf8') as msgwrite:for i in range(0,len(msg)):msgwrite.write(msg[i] + '\n')print('導入成功')總結
以上是生活随笔為你收集整理的python针对文本的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雾里的泪水
- 下一篇: vue element之简约强智系统