python檔案處理方法 python檔案處理

2021-10-13 08:04:37 字數 3441 閱讀 5462

開啟檔案,當前目錄

help(file)

方法.close()                        關閉檔案。關閉後檔案不能再進行讀寫操作。

.flush()                        重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入。

.fileno()                        返回乙個整型的檔案描述符(file descriptor fd 整型), 可以用在如os模組的read方法等一些底層操作上。

.isatty()                        如果檔案連線到乙個終端裝置返回 true,否則返回 false。

.next()                          返回檔案下一行

.read([size])                 從檔案讀取指定的位元組數,如果未給定或為負則讀取所有

.readline([size])            讀取整行,包括 "\n" 字元。

.readlines([sizehint])        讀取所有行並返回列表,若給定sizeint>0,返回總和大約為sizeint位元組的行, 實際讀取值可能比sizhint較大, 因為需要填充緩衝區。

.seek(offset[, whence])        設定檔案當前位置

.tell()                              返回檔案當前位置

.truncate([size])             擷取檔案,擷取的位元組通過size指定,預設為當前檔案位置。

.write(str)                       將字串寫入檔案,沒有返回值。

.writelines(sequence)    向檔案寫入乙個序列字串列表,如果需要換行則要自己加入每行的換行符。

資料型別描述

file.closed                         返回true如果檔案已被關閉,否則返回false。

file.encoding                    檔案編碼

file.errors

file.mode                        返回被開啟檔案的訪問模式。

file.name                        返回檔案的名稱。

file.newlines

file.softspace                如果用print輸出後,必須跟乙個空格符,則返回false。否則返回true。

檔案寫入

file('test.txt','w')

r     唯讀模式,檔案存在時才行,預設模式

rb   以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式

r+   開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭

rb+ 以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭

w    寫入,新建立test.txt檔案, 有檔案時會覆蓋檔案,

a    追加

+     讀和寫

>>> file('test.txt','w') ##檔案存在記憶體中

>>> f = file('test.txt','w')>>> f.write("first test") ##寫入內容

>>> f.write("aaa")>>>f.flush() ##重新整理寫入,儲存在硬碟

>>>f.close() ##檔案退出,儲存在硬碟

退出後無法f.write(),

如果再 以 w 模式開啟

f = file('test.txt','w')

f.write("add test2")

f.close() 原檔案內容會被覆蓋,

所以追加內容用模式

f= file('test.txt','a')

將列表寫入

f = open("test.txt", "wb")

f.writelines(['first test\n', '123\n', 'aaa'])

f.close()

開啟檔案,與檔案屬性

open

#!/usr/bin/python#-*- coding: utf-8 -*-

#開啟乙個檔案

f = open("f.txt", "wb")print "檔名:", f.nameprint "是否已關閉 :", f.closedprint "訪問模式 :", f.modeprint "末尾是否強制加空格 :", f.softspace

condecs 避免格式問題開啟檔案亂碼(推薦)

>>> importcodecs>>> f = codecs.open('test.txt','a','utf-8')>>> f.write('test')>>> f.close()

讀檔案f.readline()   讀行

>>>f = file('test.txt') ###不帶模式,預設是 r 唯讀模式

>>>f.read() 讀所有內容,列印所有內容

f.read() 之後 執行 f.readline() 會顯示空值,因為f.read() 後指標預設是在跳到內容最末尾,>>>f.tell() ##可以檢視指標位置,

>>>f.seek(0) ##指標跳到0個字元,即行首,指定跳到那個位置

>>>f.readline() ###讀出所有內容,列印第一行,再執行列印第二行

>>>f.seek(0)>>>f.readlines() ##讀取所有行並返回列表

>>>['first test\n', '123\n', 'aaa']

f.xreadlines()     ##對於很大的檔案時使用,讀單行,速度快佔記憶體小

with ...as  語法使用,enumerate() 使用

importcodecs

with codecs open('test.txt','rb') as f:print(f.read())for line, value in enumerate(f): ##每行都列印行號

print(line, value)if line == 4-1: ##列印行號

print (value)

with ...as避免忘記f.close(),又可以避免檔案亂碼

linecache 取某行內容

importlinecache

conut= linecache.getline(test.txt,4)print(count)

檔案內容替換

for line in fileinput.input("filepath",inplace=1):

line = line.replace("oldtext","newtext")

print line,      ###不寫,檔案可能被清空

inplace=0  預設=0   只列印修改,=1 修改檔案

backup= ' .bak'      修改前備份原始檔,新增.bak字尾

ElasticSearch查詢方法(python)

es.search index my index doc type test type 或者 body es.search index my index doc type test type body body term body 查詢name python 的所有資料 es.search inde...

windows下使用批處理檔案呼叫python程式

這個隨筆涉及到幾個批處理指令碼得知識點。windows的start命令,啟動另乙個視窗執行指定的程式或命令。windows的call命令,從批處理程式呼叫另乙個程式,直到被呼叫程式退出,再繼續原先的批處理程式 引數 windows,0為shell 本身,1為第1個引數,以此類推 linux,0為sh...

python處理大型json檔案的方法

先用python進行預處理,即一整個json資料載入慢,那就分開載入,每次載入乙個json物件,然後使用 json.dumps 方法 儲存到txt中,方便讀取。當然也可以儲存到記憶體中,根據情況而定。演算法思想 因為 json 是一種結構化的資料,所以 是成對存在的。因為使用逐行讀取的方法讀入jso...