欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python文件處理

 更新時間:2016年02月29日 10:54:04   作者:李興利  
這篇文章主要介紹了Python文件處理的相關(guān)資料,需要的朋友可以參考下

本文給大家介紹Python文件處理相關(guān)知識,具體內(nèi)容如下所示:

1.文件的常見操作

文件是日常編程中常用的操作,通常用于存儲數(shù)據(jù)或應(yīng)用系統(tǒng)的參數(shù)。python提供了os、os.path、shutil等模塊處理文件,其中包括最常用的打開文件,讀寫文件,賦值文件和刪除文件等函數(shù)。

1.1文件的創(chuàng)建

python3.+中移除了python2中的全局file()函數(shù),還保留了open()函數(shù)。文件的打開或創(chuàng)建可以使用函數(shù)open()。該函數(shù)可以指定處理模式,設(shè)置打開的文件為只讀,只寫,可讀寫狀態(tài)。open()的聲明如下:

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

參數(shù)說明:

•參數(shù)file是被打開的文件名稱,如果文件file不存在,open()將創(chuàng)建名為name的文件,然后再打開該文件。

•參數(shù)mode是指文件的打開模式。文件的打開模式請參照以下內(nèi)容。

•參數(shù)buffering是設(shè)置緩存模式。0表示不緩存,1表示緩存;如果大于1則表示緩沖區(qū)的大小,以字節(jié)為單位。

•參數(shù)encoding是設(shè)置文件的字符編碼格式。

•open()函數(shù)會返回一個file對象,file 對象可以對文件進行各種操作 文件模式:

'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing

創(chuàng)建一個新的文件,打開并寫入

'a' open for writing, appending to the end of the file if it exists

模式打開文件以追加

'b' binary mode二進制模式打開,可與其他模式一起使用
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)支持所有的換行符號

注意:圖片、視頻等文件必須使用b的模式進行讀寫。

message = '''
hello world,\n
hello python,\n
good time.
'''
f = open('test.txt','w')
f.write(message)
f.close()

代碼說明:

•定義一個字符串變量

•以只寫模式創(chuàng)建一個文件并寫入

•將字符串變量寫入文件

•關(guān)閉文件

1.2 文件的讀取

文件的讀取有多種方法,可以使用readline()、readlines()、或read()函數(shù)讀取文件。

1.按行讀取方式readline()

readline()每次讀取文件的一行,需要循環(huán)讀取文件。但是當(dāng)文件指針移動到文件的末尾是,依然使用readline()讀取文件將出現(xiàn)錯誤。因此程序中需要添加一個判斷語句,判斷時間指針是否在文件的尾部,并且通過該語句中斷循環(huán)。示例如下:

# 使用readline模式讀取文件
f = open('test.txt','r')
while True:
line = f.readline()
if line:
print(line)
else:
break
f.close()
#如果line = f.readline(2)則表示每次循環(huán)只讀取兩字節(jié)的內(nèi)容,直到行的末尾

2.多行讀取方式readlines()

# 多行讀取文件
f = open('test.txt')
lines = f.readlines()
for line in lines:
print(line)
f.close()

3.一次性讀取方式read()

讀取文件最簡單的方式就是使用read(),read()將文件中一次性讀出所有內(nèi)容,并賦值給字符串變量,但是當(dāng)文件比較大的時候不建議使用read()的方式去讀取文件,因為一次讀取比較大的內(nèi)容會消耗大量的內(nèi)存,影響系統(tǒng)的性能。示例如下:

# 一次讀取文件
f = open('test.txt','r')
lines = f.read()
print(lines)
f.close()

文件指針:

with open('test.txt','rb') as src:
rd = src.read(100)
print(rd)
print(src.seek(src.tell()))
rd = src.read(100)
print(rd)
print(src.seek(src.tell()))
#每次讀取100字節(jié),然后返回指針的位置

4.with函數(shù)

通常我們使用open()打開一個文件并賦值給一個字符串變量來對文件進行操作,最后還需要進行手動關(guān)閉文件,這樣寫起來有點麻煩,下面我們可以使用with函數(shù)將文件打開與關(guān)閉寫在一行函數(shù)上。

with open('test.txt','r') as src:
da = src.read()
print(da)
#只讀模式打開文件并賦值給src,然后對文件進行操作即可,代碼與使用open()來操作文件相同。

1.3文件的寫入

文件的寫入有多種方法,可以使用write(),也可以使用writelines()方法寫入文件。write()可以將字符串寫入文件,writelines()可以將列表寫入文件。示例如下:

m1 = 'hello world'
l1 = ['good','time']
f = open('test1.txt','w')
f.write(m1)
f.writelines(l1)
f.close()

文件的追加:

m1 = 'hello python'
f = open('test1.txt','a+')
f.write(m1)
f.close()

1.4文件的刪除

文件的刪除需要使用os模塊和os.path模塊,os模塊提供了系統(tǒng)的環(huán)境、文件、目錄等操作系統(tǒng)的函數(shù)。 對于文件來說比較常用的os模塊的函數(shù)如下:

•os.access(path,mode)#按照mode指定的權(quán)限進行訪問
•os.chmod(path,mode)#改變文件的訪問權(quán)限,mode用UNIX的權(quán)限符號表示
•os.open(filename,flag[,mode=0777])#按照mode指定的權(quán)限打開文件。默認情況下,給所有用戶讀、寫、執(zhí)行的權(quán)限
•os.remove(path)#刪除path指定的文件
•os.rename(old,new)#重命名文件或目錄,old表示原文件或目錄,new表示新文件或目錄
•os.stat(path)#返回path指定文件的所有屬性
•os.fstat(path)#返回打開文件的所有屬性
•os.startfile(filepath[,operation])#啟動關(guān)聯(lián)程序打開文件。例如,打開一個html文件,將啟動IE瀏覽器
•os.tmpfile()#創(chuàng)建一個臨時文件,文件創(chuàng)建在操作系統(tǒng)的臨時目錄中

注意:os模塊的open()函數(shù)與內(nèi)建的open()函數(shù)的用法不同。

os.path模塊常用的函數(shù)如下:

•os.path.abspath(path)#返回path所在的絕對路徑
•os.path.dirpath(path)#返回目錄的路徑
•os.path.exists(path)#判斷文件是否存在
•os.path.getatime(filename)#返回文件的最后訪問時間
•os.path.getctime(filename)#返回文件的創(chuàng)建時間
•os.path.getmtime(filename)#返回文件最后的修改時間
•os.path.getsize(filename)#返回文件的大小

os.path判斷函數(shù)

•os.path.isabs(s)#測試路徑是否是絕對路徑
•os.path.isdir(path)#判斷path指定的是否是目錄
•os.path.isfile(path)#判斷path指定的是否是文件
•os.path.split(p)#對路徑進行分割,并以列表的方式返回
•os.path.splitext(p)#從路徑中分割文件的擴展名
•os.path.splitdrive(p)#從路徑中分割驅(qū)動器的名稱
•os.walk(top,func,arg)#遍歷目錄樹

示例如下:

import os
if os.path.exists('../test.txt'):
os.remove('test.txt')
print('is del')
else:
print('no')

1.5文件的復(fù)制

文件的復(fù)制有多種方法,下面我們來看一下第一種比較low的方式,就是讀寫的方式進行文件復(fù)制。示例如下:

#使用read()、write()實現(xiàn)文件復(fù)制
f1 = open('1.txt','r')
f2 = open('2.txt','w')
f2.write(f1.read())
f2.close()
f1.close()

第二種方法:

shutil模塊,shutil模塊是另外一個文件、目錄的管理接口,提供了一些用于復(fù)制、目錄的函數(shù)。copyfile()函數(shù)可以實現(xiàn)文件的復(fù)制,copyfile()函數(shù)的聲明如下:
shuil.copyfile(src,dst)
•src表示源文件的路徑,src是字符串類型
•dst表示目標文件的路徑,dst是字符串類型
•src指向的文件復(fù)制到dst指向的文件

示例如下:

import shutil
shutil.move('1.txt','2.txt')

1.6文件的重命名

os模塊的函數(shù)rename()可以對文件或目錄進行重命名。

import os
os.rename('1.txt','11.txt')

使用shutil中的move()函數(shù)也可以實現(xiàn)文件重命名的目的。

import shutil
shutil.move('11.txt','1.txt')

修改文件的后綴名:

import os
files = os.listdir('.')
for filename in files:
li = os.path.splitext(filename)#返回后文件名和后綴名的列表
if li[1] == '.html':
newname = li[0] + '.htm'
os.rename(filename,newname)

glob模塊用于對路徑的匹配,返回符合給定條件的文件列表。glob模塊的主要函數(shù)就是glob(),該函數(shù)返回符合同一匹配條件的多個文件。上面的呈現(xiàn)需要判斷是否為html后綴,也可以使用glob()函數(shù)直接匹配文件名稱。 匹配代碼如下:

glob.glob('*.html')

glob還可以對路徑做更對的匹配。例如,匹配C盤中以w開頭的目錄中所有的文本文件。

glob.glob('C:\\\w*\\*\\txt') 

1.7文件的搜索和替換

文件內(nèi)容的搜索和替換可以使用字符串的查找和替換來實現(xiàn)。例如,在htllo.txt文件中查找字符串'hello',并統(tǒng)計'hello'出現(xiàn)的次數(shù)。代碼如下:

python, equal to anything!

以上內(nèi)容給大家介紹了Python文件處理相關(guān)知識,希望對大家有所幫助!

相關(guān)文章

  • python中的opencv和PIL(pillow)轉(zhuǎn)化操作

    python中的opencv和PIL(pillow)轉(zhuǎn)化操作

    這篇文章主要介紹了python中的opencv和PIL(pillow)轉(zhuǎn)化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Django 中間鍵和上下文處理器的使用

    Django 中間鍵和上下文處理器的使用

    這篇文章主要介紹了Django 中間鍵和上下文處理器的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Python使用latexify模塊實現(xiàn)將代碼為數(shù)學(xué)公式

    Python使用latexify模塊實現(xiàn)將代碼為數(shù)學(xué)公式

    latexify 是一個輕量級的 Python 模塊,可以將 Python 代碼轉(zhuǎn)換為 LaTeX 格式的數(shù)學(xué)表達式,這篇文章就來和大家探索一下如何使用latexify模塊實現(xiàn)將代碼為數(shù)學(xué)公式吧
    2023-12-12
  • Python 壓縮打包文件/文件夾的方法

    Python 壓縮打包文件/文件夾的方法

    本文主要介紹了Python?壓縮打包文件/文件夾的方法,分兩種類型處理,打包文件是需要傳入文件的路徑,打包文件夾是傳入文件夾的路徑,感興趣的可以了解一下
    2023-12-12
  • Numpy中的ravel_multi_index函數(shù)用法說明

    Numpy中的ravel_multi_index函數(shù)用法說明

    這篇文章主要介紹了Numpy中的ravel_multi_index函數(shù)用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 淺談Pycharm中的Python Console與Terminal

    淺談Pycharm中的Python Console與Terminal

    今天小編就為大家分享一篇淺談Pycharm中的Python Console與Terminal,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 探秘TensorFlow 和 NumPy 的 Broadcasting 機制

    探秘TensorFlow 和 NumPy 的 Broadcasting 機制

    這篇文章主要介紹了探秘TensorFlow 和 NumPy 的 Broadcasting 機制,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 修改Python的pyxmpp2中的主循環(huán)使其提高性能

    修改Python的pyxmpp2中的主循環(huán)使其提高性能

    這篇文章主要介紹了修改Python的pyxmpp2中的主循環(huán)使其提高性能,pyxmpp2是Python中使用需XMPP協(xié)議的一個常用工具,要的朋友可以參考下
    2015-04-04
  • 2020最新pycharm漢化安裝(python工程獅親測有效)

    2020最新pycharm漢化安裝(python工程獅親測有效)

    這篇文章主要介紹了2020最新pycharm漢化安裝(python工程獅親測有效),文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • PyQt5 QListView 高亮顯示某一條目的案例

    PyQt5 QListView 高亮顯示某一條目的案例

    這篇文章主要介紹了PyQt5 QListView 高亮顯示某一條目的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論