1. 程式人生 > >【Python基礎】文件操作

【Python基礎】文件操作

操作文件 center spl 查看 補充 -a col ble none

文件操作

  • 一 文件操作
  • 二 打開文件的模式
  • 三 操作文件的方法
  • 四 文件內光標移動
  • 五 文件的修改

參考:http://www.cnblogs.com/linhaifeng/articles/5984922.html#_label28

"""文件 讀 r 操作"""

技術分享圖片
f=open(陳粒,encoding=utf-8)
data=f.read()
print(data)
f.close()

f=open(xxx)
data=f.read()
print(data)


f=open(陳粒,r,encoding=utf-8)
data
=f.read() # print(data) print(f.readable()) print(第1行,f.readline(),end=‘‘) print(第2行,f.readline()) print(第3行,f.readline()) # for i in range(1): # pass print(第4行,f.readline()) print(第5行,f.readline()) print(第6行,f.readline()) print(第7行,f.readline()) data=f.readlines() print
(data) f.close()
讀文件

""" 文件 寫 w 操作 """

技術分享圖片
f=open(陳粒1,w,encoding=utf8)
# f.read()
f.write(11111111\n)
f.write(222222222\n)
f.write(333\n4444\n555\n)
# f.writable()
f.writelines([555\n,6666\n])
f.writelines([555\n,6666\n,1]) # 文件內容只能是字符串,只能寫字符串
f.close()
寫文件

"""文件 追加 a 操作"""

技術分享圖片
f=open(陳粒1,a,encoding=utf-8)
f.write(追加方式寫到文件最後)
追加寫操作

"+" 表示可以同時讀寫某個文件

r+, 讀寫【可讀,可寫】

w+,寫讀【可讀,可寫】

a+, 寫讀【可讀,可寫】

"""文件修改"""

技術分享圖片
src_f=open(xxx,r,encoding=gbk)
data=src_f.readlines()
src_f.close()

# for i in data:
#     print(i)
print(data)
dst_f=open(xxx,w,encoding=gbk)
# dst_f.writelines(data)
dst_f.write(data[0])
dst_f.close()

with open(a.txt,w) as f:
    f.write(1111\n)


src_f=open(xxx,r,encoding=gbk)
dst_f=open(xxx,w,encoding=gbk)
修改文件

"""以 with 方式打開多個文件"""

技術分享圖片
with open(xxx,r,encoding=gbk) as src_f,        open(xxx_new,w,encoding=gbk) as dst_f:
    data=src_f.read()
    dst_f.write(data)

f=open(a.txt)
print(f.encoding) #查看文件編碼
View Code

"""以 bytes(二進制)方式打開文件"""

技術分享圖片
f=open(test11.py,rb,encoding=utf-8)     #b的方式不能指定編碼
f=open(test11.py,rb) #b的方式不能指定編碼
data=f.read()

#‘字符串‘---------encode---------》bytes
#bytes---------decode---------》‘字符串‘

print(data)
print(data.decode(utf-8))
f.close()


f=open(test22.py,wb) #b的方式不能指定編碼
f.write(bytes(1111\n,encoding=utf-8))
f.write(中國.encode(utf-8))

f=open(test22.py,ab) #b的方式不能指定編碼
f.write(中國.encode(utf-8))

open(a.ltxt,wt)
View Code

補充:"""需求:讀取幾萬行日誌文件的最後一行
f.readlines() 直接全部讀出來放在內存中 很耗內存空間
"""

技術分享圖片
# f=open(‘日誌文件‘,‘rb‘)
# data=f.readlines()
# print(data[-1].decode(‘utf-8‘))

f=open(日誌文件,rb)

# for i in f.readlines():
#     print(i)

#循環文件的推薦方式,以行為單位讀取,取一行用一行 不全部放在內存中
# for i in f:
#     print(i)

for i in f:
    offs=-10
    while True:
        f.seek(offs,2)
        data=f.readlines()
        if len(data) > 1:
            print(文件的最後一行是%s %(data[-1].decode(utf-8)))
            break
        offs*=2
View Code

【Python基礎】文件操作