記錄下第一次使用Python讀寫文件的過程,雖然很簡單,第一次實現其實也有些注意的事項。
咱們先假設一個需求以下:html
test.txt
文件需求明白以後,下面開始動手寫代碼,代碼很簡單。就直接上所有的,細節看註釋:python
import sys filePath = "/Users/xxxxxx/Desktop/test.txt" # 打開文件 files = open(filePath, 'r') # 轉成list f_list = files.readlines() tempIndex = 0 # 對f_list 循環 每一個index對應一行數據 for index in range(len(f_list)): # temp是獲取一行的數據 temp = f_list[index] # 判斷"test"是否是temp這行數據的首位 若是是首位 result爲true result = temp.find("test") == 0 if result: # 若是是首位 這就是咱們要刪除的位置 獲取他的index tempIndex = index break # 存放新數據 tempContainer = [] for index in range(len(f_list)): if index > tempIndex: # tempIndex以前的數據咱們不處理,把tempindex以後的數據存到新的list裏面 tempContainer.append(f_list[index]) # 這就得到了咱們須要的新數據 print(tempContainer)
以上代碼就完成了需求,很是簡單。有幾個注意點:多線程
open
獲取的數據沒法進行處理,因此先轉成能夠處理的數據,好比list或者字典等。open
和C的相似,有r,r+, w, w+
等各類狀態,見具體介紹 open函數的常見操做方式 一、r 打開只讀文件,該文件必須存在。 二、r+ 打開可讀寫的文件,該文件必須存在。 三、w 打開只寫文件,若文件存在則文件長度清爲0,即該文件內容會消失。若文件不存在則創建該文件。 四、w+ 打開可讀寫文件,若文件存在則文件長度清爲零,即該文件內容會消失。若文件不存在則創建該文件。
假設一個需求以下:app
test.txt
處理方式相似其實這個需求實質上只是比單文件讀操做只多了一個寫操做。其餘的就是邏輯稍微繞一下函數
確定是不能一個文件一個文件的去操做,太麻煩了。說下個人實現思路:性能
下面上代碼:學習
import os # 初始的文件夾路徑 filePath = "/Users/xxxxxxxx/Desktop/fileDocument" # 存放新文件的空白文件夾 newFilePath = "/Users/xxxxxxxx/Desktop/newFileDocument" # 獲取文件夾下全部文件名 fileNames = os.listdir(filePath) for file in fileNames: # 若是當前的文件名包含了'txt',就當它是正確的文件(並不嚴謹) if file.find("txt") >= 0: # 拼接成咱們要讀取的完整路徑 fileFullPath = filePath + "/" + file # open 函數 默認是 'r'類型 , singleFile = open(fileFullPath) # 轉換成list數據 singleFile_list = singleFile.readlines() tempIndex = 0 for index in range(len(singleFile_list)): temp = singleFile_list[index] result = temp.find("min") == 0 if result: tempIndex = index break # 拼接新的文件路徑 newSingleFileFullPath = newFilePath + "/" + file # 以 w 方式打開新的空白文件 newFile = open(newSingleFileFullPath, 'w') for index in range(len(singleFile_list)): if index > tempIndex: # 寫入tempindex行以後的數據 newFile.writelines(singleFile_list[index]) newFile.close()
上面的代碼其實沒啥要介紹的,就是一個for循環而後邏輯和單個文件讀操做同樣,只是多了個寫操做。優化
這只是本身因緣巧合寫的一些簡單的實現,並無去系統的學習Python,好多API不瞭解,可能這種處理不是很好,沒注重性能,沒多線程。等之後深刻學習了再優化。線程