摘要:打開可讀寫的文件,該文件必須存在。若文件不存在則建立該文件。多文件讀寫保存假設一個需求如下多個文件都要處理和上面的處理方式類似處理完之后保存到一個新文件夾內其實這個需求實質上只是比單文件讀操作只多了一個寫操作。
記錄下第一次使用Python讀寫文件的過程,雖然很簡單,第一次實現其實也有些注意的事項。單個文件的讀操作:
我們先假設一個需求如下:
讀取一個test.txt文件
刪除指定字符之前的文本
需求明白之后,下面開始動手寫代碼,代碼很簡單。就直接上全部的,細節看注釋:
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或者字典等。
python的open和C的類似,有r,r+, w, w+等各種狀態,見具體介紹
open函數的常見操作方式 1、r 打開只讀文件,該文件必須存在。 2、r+ 打開可讀寫的文件,該文件必須存在。 3、w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。 4、w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。多文件讀寫保存
假設一個需求如下:
多個文件都要處理
和上面的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循環然后邏輯和單個文件讀操作一樣,只是多了個寫操作。
End這只是自己因緣巧合寫的一些簡單的實現,并沒有去系統的學習Python,好多API不了解,可能這種處理不是很好,沒注重性能,沒多線程。等以后深入學習了再優化。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42444.html
摘要:如果該文件已存在,文件指針將會放在文件的結尾。運行結果以上是讀取文件的方法。為了輸出中文,我們還需要指定一個參數為,另外規定文件輸出的編碼。 上一篇文章:Python3網絡爬蟲實戰---30、解析庫的使用:PyQuery下一篇文章:Python3網絡爬蟲實戰---32、數據存儲:關系型數據庫存儲:MySQL 我們用解析器解析出數據之后,接下來的一步就是對數據進行存儲了,保存的形式可以...
摘要:查找了一下,可以操作表的幾個庫有以下幾個這個是推薦使用的庫,可以讀寫以上格式,以結尾的文件。這個支持讀取數據,支持以結尾的文件,也就是比較老的格式。這個和上面的相對應,支持寫入書和格式化數據,支持結尾的文件格式。 最近需要用到Python來操作excel表,讀取表格內容到數據庫。所以就搜索了相關資料。查找了一下,可以操作excel表的幾個庫有以下幾個: openpyxl 這個是推薦使用...
摘要:在系統中,一切都是文件。第二個參數也是一個字符串,表示文件使用方式。是文本模式下讀寫文件。在使用創建文件對象時,最好使用關鍵字。其好處是,當字句體結束后文件會正確關閉,即使在某個時刻引發了異常。 在Linux系統中,一切都是文件。但我們通常說的文件是保存在磁盤上的圖片、文檔、數據、程序等等。而在程序的IO操作中,很多時候就是從磁盤讀寫文件。本節我們講解Python中的文件對象如何操作文...
摘要:所以如果像上述這樣引入模塊的時候,調用函數必須加上模塊名通常情況下鼓勵每個語句只導入一個包方便理解和閱讀代碼。 今天我們學習Python的高級特性、模塊和IO操作,通過學習這些,我們可以更快的了解Python,使用Python。 高級特性中會講述列表生成式、生成器、和一些高級函數,學習這些方便我們快速的生成列表,節省我們使用Python的時間,更快的使用Python達成我們的目的。 模...
閱讀 3684·2021-11-25 09:43
閱讀 2600·2021-11-18 13:11
閱讀 2193·2019-08-30 15:55
閱讀 3271·2019-08-26 11:58
閱讀 2823·2019-08-26 10:47
閱讀 2230·2019-08-26 10:20
閱讀 1270·2019-08-23 17:59
閱讀 2999·2019-08-23 15:54