1. 程式人生 > >python全棧開發---文件處理

python全棧開發---文件處理

com lena name 強制 Python全棧 記得 光標位置 文件名 pytho

python文件處理

最近好多同學說不會文件的處理,在這裏總結一下文件處理的知識點。

一、打開文件,關閉文件

文件的操作采用open()的方法

file = open(filename,mode,encoding)    #打開文件
           
file.close()                  #關閉文件

其中

filename: 要打開的文件路徑,mode: 打開文件的模式,encoding:打開文件的編碼格式(一般采用utf-8)

打開文件的模式:

技術分享圖片

註意:filename是文件的路徑,當你沒有路徑只寫了一個文件名的時候,默認是在當前文件夾下創建,當你使用絕對路徑的時候,記得轉譯路徑中的‘ \ ’

f = open(file=1.txt, mode=w, encoding=utf-8)  #在當前文件夾下創建

#註意絕對路徑
f = open(file=C:\\Users\\Administrator\\Desktop\\1.txt, mode=w, encoding=utf-8)

二、常用的方法

# 讀文件
f = open(file=1.txt, mode=r,encoding=utf-8)
data = f.read()
print(data)
f.close()

# 循環遍歷文件
f = open(file=1.txt, mode=
r) for line in f: print(line) # 寫文件 f = open(file=2.txt, mode=w, encoding=gbk) f.write(學習python.) f.close() # 追加模式 這個模式是在以存在的文件的末尾最後繼續寫入內容 f = open(file=2.txt, mode=a, encoding=gbk) f.write(學習java.) f.close() # 讀寫模式 f = open(file=2.txt, mode=r+, encoding=gbk) data = f.read()
print(data) f.write(\n學習C.) f.close() # 寫讀模式 f = open(file=2.txt, mode=r+, encoding=gbk) f.write(\n新疆.) data = f.read() print(data) f.close()

# 其他功能
f = open(file=C:\\Users\\Administrator\\Desktop\\1.txt, mode=r+, encoding=gbk)
f.fileno()     # 返回文件句柄在內核的索引值,IO多路復用時用到
f.flush()      # 把文件從內存buffer中強制刷新到硬盤
f.readable()   # 判讀文件是否可讀
f.readline()   # 只讀一行遇到\n \r截止
f.tell()       # 返回當前光標位置
f.seek()       # 移動光標到指定位置
f.seekable()    # 判斷文件是否可進行seek操作
f.truncate()    # 按指定長度截斷文件*指定長度的話,從開頭開始截斷, 不指定長度的話,從當前位置到尾部全部去掉
f.writable()    # 判斷是否可寫

 

三、文件修改

下面寫個簡單方法實現文件的修改:

# 文件修改
improt os         #這裏導入了os模塊去改文件名
f_name = C:\\Users\\Administrator\\Desktop\\3.txt
f_new_name = %s.new % f_name
old_str = 新疆
new_str = 北京bj
f = open(file=f_name, mode=r, encoding=gbk)
f_new = open(file=f_new_name, mode=w, encoding=gbk)
for line in f:
    if old_str in line:
        line = line.replace(old_str,new_str)
    f_new.write(line)
os.rename(f_new_name, f_name)

四、使用with操作文件

用with語句來操作,這樣就不需要手動來關閉文件了。

# 用with語句打開,不需要在寫f.close()
with open(1.txt,r,encoding=utf-8) as f:
    print(f.read())

初入博客園,寫的不好請多多指正,如發現問題,我會及時更正,共同進步。

python全棧開發---文件處理