成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python文件讀寫保存操作

ephererid / 2928人閱讀

摘要:打開可讀寫的文件,該文件必須存在。若文件不存在則建立該文件。多文件讀寫保存假設(shè)一個(gè)需求如下多個(gè)文件都要處理和上面的處理方式類似處理完之后保存到一個(gè)新文件夾內(nèi)其實(shí)這個(gè)需求實(shí)質(zhì)上只是比單文件讀操作只多了一個(gè)寫操作。

記錄下第一次使用Python讀寫文件的過程,雖然很簡單,第一次實(shí)現(xiàn)其實(shí)也有些注意的事項(xiàng)。
單個(gè)文件的讀操作:

我們先假設(shè)一個(gè)需求如下:

讀取一個(gè)test.txt文件

刪除指定字符之前的文本

需求明白之后,下面開始動(dòng)手寫代碼,代碼很簡單。就直接上全部的,細(xì)節(jié)看注釋:

import sys

filePath = "/Users/xxxxxx/Desktop/test.txt"
# 打開文件
files = open(filePath, "r")
# 轉(zhuǎn)成list
f_list = files.readlines()


tempIndex = 0
# 對(duì)f_list 循環(huán) 每個(gè)index對(duì)應(yīng)一行數(shù)據(jù)
for index in range(len(f_list)):
    # temp是獲取一行的數(shù)據(jù)
    temp = f_list[index]
    # 判斷"test"是不是temp這行數(shù)據(jù)的首位 如果是首位 result為true
    result = temp.find("test") == 0

    if result:
        # 如果是首位 這就是我們要?jiǎng)h除的位置 獲取他的index
        tempIndex = index
        break
# 存放新數(shù)據(jù)
tempContainer = []

for index in range(len(f_list)):
    if index > tempIndex:
        # tempIndex之前的數(shù)據(jù)我們不處理,把tempindex之后的數(shù)據(jù)存到新的list里面
        tempContainer.append(f_list[index])
# 這就獲得了我們需要的新數(shù)據(jù)
print(tempContainer)

以上代碼就完成了需求,非常簡單。有幾個(gè)注意點(diǎn):

直接用open獲取的數(shù)據(jù)無法進(jìn)行處理,所以先轉(zhuǎn)成可以處理的數(shù)據(jù),比如list或者字典等。

python的open和C的類似,有r,r+, w, w+等各種狀態(tài),見具體介紹

open函數(shù)的常見操作方式
1、r 打開只讀文件,該文件必須存在。 
2、r+ 打開可讀寫的文件,該文件必須存在。 
3、w 打開只寫文件,若文件存在則文件長度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 
4、w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 
多文件讀寫保存

假設(shè)一個(gè)需求如下:

多個(gè)文件都要處理

和上面的test.txt處理方式類似

處理完之后保存到一個(gè)新文件夾內(nèi)

其實(shí)這個(gè)需求實(shí)質(zhì)上只是比單文件讀操作只多了一個(gè)寫操作。其他的就是邏輯稍微繞一下

怎么同時(shí)操作多個(gè)文件

然后怎么保存成多個(gè)文件

肯定是不能一個(gè)文件一個(gè)文件的去操作,太麻煩了。說下我的實(shí)現(xiàn)思路:

把文件放在一個(gè)文件夾內(nèi)

獲取這個(gè)文件夾內(nèi)所有的文件名,拼接成文件路徑

然后創(chuàng)建一個(gè)空的新文件夾,用新的空文件夾加上原始的文件名拼接成新的路徑然后寫入進(jìn)去

下面上代碼:

import os

# 初始的文件夾路徑
filePath = "/Users/xxxxxxxx/Desktop/fileDocument"
# 存放新文件的空白文件夾
newFilePath = "/Users/xxxxxxxx/Desktop/newFileDocument"

# 獲取文件夾下所有文件名
fileNames = os.listdir(filePath)

for file in fileNames:
    # 如果當(dāng)前的文件名包含了"txt",就當(dāng)它是正確的文件(并不嚴(yán)謹(jǐn))
    if file.find("txt") >= 0:
        # 拼接成我們要讀取的完整路徑
        fileFullPath = filePath + "/" + file
        # open 函數(shù) 默認(rèn)是 "r"類型 ,
        singleFile = open(fileFullPath)
        # 轉(zhuǎn)換成list數(shù)據(jù)
        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行之后的數(shù)據(jù)
                newFile.writelines(singleFile_list[index])

        newFile.close()

上面的代碼其實(shí)沒啥要介紹的,就是一個(gè)for循環(huán)然后邏輯和單個(gè)文件讀操作一樣,只是多了個(gè)寫操作。

End

這只是自己因緣巧合寫的一些簡單的實(shí)現(xiàn),并沒有去系統(tǒng)的學(xué)習(xí)Python,好多API不了解,可能這種處理不是很好,沒注重性能,沒多線程。等以后深入學(xué)習(xí)了再優(yōu)化。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/42444.html

相關(guān)文章

  • Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---31、數(shù)據(jù)存儲(chǔ):文件存儲(chǔ)

    摘要:如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。運(yùn)行結(jié)果以上是讀取文件的方法。為了輸出中文,我們還需要指定一個(gè)參數(shù)為,另外規(guī)定文件輸出的編碼。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---30、解析庫的使用:PyQuery下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---32、數(shù)據(jù)存儲(chǔ):關(guān)系型數(shù)據(jù)庫存儲(chǔ):MySQL 我們用解析器解析出數(shù)據(jù)之后,接下來的一步就是對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)了,保存的形式可以...

    dreamans 評(píng)論0 收藏0
  • Python 讀寫excel文件

    摘要:查找了一下,可以操作表的幾個(gè)庫有以下幾個(gè)這個(gè)是推薦使用的庫,可以讀寫以上格式,以結(jié)尾的文件。這個(gè)支持讀取數(shù)據(jù),支持以結(jié)尾的文件,也就是比較老的格式。這個(gè)和上面的相對(duì)應(yīng),支持寫入書和格式化數(shù)據(jù),支持結(jié)尾的文件格式。 最近需要用到Python來操作excel表,讀取表格內(nèi)容到數(shù)據(jù)庫。所以就搜索了相關(guān)資料。查找了一下,可以操作excel表的幾個(gè)庫有以下幾個(gè): openpyxl 這個(gè)是推薦使用...

    plus2047 評(píng)論0 收藏0
  • python基礎(chǔ)教程:文件讀寫

    摘要:在系統(tǒng)中,一切都是文件。第二個(gè)參數(shù)也是一個(gè)字符串,表示文件使用方式。是文本模式下讀寫文件。在使用創(chuàng)建文件對(duì)象時(shí),最好使用關(guān)鍵字。其好處是,當(dāng)字句體結(jié)束后文件會(huì)正確關(guān)閉,即使在某個(gè)時(shí)刻引發(fā)了異常。 在Linux系統(tǒng)中,一切都是文件。但我們通常說的文件是保存在磁盤上的圖片、文檔、數(shù)據(jù)、程序等等。而在程序的IO操作中,很多時(shí)候就是從磁盤讀寫文件。本節(jié)我們講解Python中的文件對(duì)象如何操作文...

    neroneroffy 評(píng)論0 收藏0
  • Python的高級(jí)特性,模塊和IO操作

    摘要:所以如果像上述這樣引入模塊的時(shí)候,調(diào)用函數(shù)必須加上模塊名通常情況下鼓勵(lì)每個(gè)語句只導(dǎo)入一個(gè)包方便理解和閱讀代碼。 今天我們學(xué)習(xí)Python的高級(jí)特性、模塊和IO操作,通過學(xué)習(xí)這些,我們可以更快的了解Python,使用Python。 高級(jí)特性中會(huì)講述列表生成式、生成器、和一些高級(jí)函數(shù),學(xué)習(xí)這些方便我們快速的生成列表,節(jié)省我們使用Python的時(shí)間,更快的使用Python達(dá)成我們的目的。 模...

    WelliJhon 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<