記錄下第一次使用Python讀寫文件的過程,雖然很簡單,第一次實現其實也有些注意的事項。
單個文件的讀操作:
我們先假設一個需求如下:
需求明白之后,下面開始動手寫代碼,代碼很簡單。就直接上全部的,細節看注釋:
import sysfilePath = "/Users/xxxxxx/Desktop/test.txt"# 打開文件files = open(filePath, 'r')# 轉成listf_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函數的常見操作方式
1、r 打開只讀文件,該文件必須存在。
2、r+ 打開可讀寫的文件,該文件必須存在。
3、w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
4、w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
多文件讀寫保存
假設一個需求如下:
其實這個需求實質上只是比單文件讀操作只多了一個寫操作。其他的就是邏輯稍微繞一下
肯定是不能一個文件一個文件的去操作,太麻煩了。說下我的實現思路:
下面上代碼:
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循環然后邏輯和單個文件讀操作一樣,只是多了個寫操作。
End
這只是自己因緣巧合寫的一些簡單的實現,并沒有去系統的學習Python,好多API不了解,可能這種處理不是很好,沒注重性能,沒多線程。等以后深入學習了再優化。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答