1. 程式人生 > >python檔案的讀、寫與修改及with 語句

python檔案的讀、寫與修改及with 語句

#data = open("yesterday",encoding= "utf-8").read()   #新增encoding 是為了讓utf-8開啟 否則就預設win的gbk開啟
#f = open("yesterday",encoding='utf-8' )   #檔案控制代碼    r 預設讀
#f = open("yesterday2",'w',encoding='utf-8')   #寫
f = open("yesterday2",'a',encoding='utf-8')    # a=append 追加
f = open("yesterday2",'rb')          #檔案控制代碼  二進位制檔案 b'位元組型別  (1、網路傳輸只能用二進位制 2、下載的二進位制檔案需要用二進位制開啟)
f = open("yesterday2",'wb')          #檔案控制代碼  二進位制檔案

data=f.read()
data2=f.read()     #從第一個結尾處開始讀
print(data)
print('----------data2------------%s--'%data2)


f.write("when i was young i listen to the radio\n")  #以寫建立檔案
data=f.read()
print('---read',data)
f.close()


#檔案讀        #檔案控制代碼    r 預設讀

f=open("yesterday",encoding="utf-8")     #新增encoding 是為了讓utf-8開啟 否則就預設win的gbk開啟
data=f.read()
data2=f.read()
print(data)
print(data2)
f.close()


#列印到第幾行

f=open("yesterday2",'r',encoding="utf-8")
for index,line in enumerate(f.readlines() ):    #index   enumerate   列舉
    if index  ==9:
        print('-----------我是分割線------')
        continue
    print(line.strip() )

#優化
f=open("yesterday2",'r',encoding="utf-8")
count = 0
for line in f :
    if count==5:
        print('-----------我是分割線------')
        count +=1
        continue
    print(line)
    count+=1


#按字元計數
f=open("yesterday2",'r',encoding="utf-8")
print(f.tell())               #列印到某個地方
#print(f.readline())         #計數一行的字元數
#print(f.read(5) )            #讀取5字元數
print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())             #列印游標在哪裡
f.seek(10)                 #回到某個的地方
print(f.readline() )

print(f.encoding)            #列印檔案編碼

print(f.fileno())            #返回檔案具體佔位成功的編號
print(f.name)                #列印檔名字
print(f.flush() )            #重新整理(許可權)   刷出臨時快取裡的檔案(重新整理實時硬碟)

f.closed                    #判斷檔案是否關閉
f.truncate()                #要用a    ()裡未寫東西 就清空  (10)在第十個位置截斷,前面也留著 移動也不好使


#讀前五行
#for i in range(5):
#    print(f.readline() )

#寫  從寫創立檔案

f=open("yesterday2",'w',encoding="utf-8")   #寫
f.write("東方紅,太陽升,\n")
f.write("東方出了個。。。")
data=f.write()
print(data)
f.close()

#追加   a=append
f=open("yesterday2",'a',encoding="utf-8")
f.write("\n浪裡個浪。。。\n")
f.write("lalllalalalalala....")
data=f.write()
print(data)
f.close() 


#檔案的既讀又寫(開啟檔案追加讀寫)
#f=open("yesterday2",'r+',encoding="utf-8")   #檔案控制代碼  r+  表示讀寫
print(f.readline() )
print(f.readline() )
print(f.readline() )
f.write("-----diao-----")                    #寫在最後面
print(f.tell())
print(f.readline())
'''

#檔案的寫讀
f=open("yesterday2",'w+',encoding="utf-8")    #檔案控制代碼 w+   表示寫讀
print(f.write("--------diao---------\n"))
print(f.write("--------diao---------\n"))
print(f.write("--------diao---------\n"))
print(f.write("--------diao---------\n"))
print(f.tell())
f.seek(10)
print(f.readline() )
f.write("shold be in the begining")           #追加寫在最後面(Python3)
print(f.close() )


#二進位制檔案的讀寫 寫讀
#f = open("yesterday2",'rb')          #檔案控制代碼  二進位制檔案 b'位元組型別  (1、網路傳輸只能用二進位制 2、
f = open("yesterday2",'wb')          #檔案控制代碼  二進位制檔案
f.write("hello brinary!\n".encoding())  #.encoding()    轉化成二進位制
f.close()

#檔案的修改 

f=open("yesterday2","r",encoding= "utf-8")
f_new=open("yesterday2.bak","w",encoding= "utf-8")


for line in f:                #迴圈列印舊檔案,找到需要替換的句子,修改,然後寫新的
    if "多甜美的曲兒等我歌唱" in  line:
        line  = line.replace("多甜美的曲兒等我歌唱","多甜美的曲兒等Jack歌唱") #沒找到就不動,找到後就修改
    f_new.write(line)                                                     #修改後寫入新檔案
f.close()
f_new.close()

 #實現簡單的shell sed替換功能

import sys

f=open("yesterday2","r",encoding= "utf-8")
f_new=open("yesterday2.bak","w",encoding= "utf-8")

find_str = sys.argv[1]
replace_str2 = sys.argv[2]
for line in f:                #迴圈列印舊檔案,找到需要替換的句子,修改,然後寫新的
    if find_str in  line:
        line  = line.replace(find_str,replace_str2)
    f_new.write(line)
f.close()
f_new.close()

 #with語句

#f=open("yesterday2","r",encoding= "utf-8")

#with open("yesterday2","r",encoding= "utf-8") as f:   #幫你自動關閉檔案

with open("yesterday2", "r", encoding="utf-8") as f,\
        open("yesterday2", "r", encoding="utf-8") as f2 :  # 開啟兩個檔案

     for line in f:
         print(line)

相關推薦

python檔案修改with 語句

#data = open("yesterday",encoding= "utf-8").read() #新增encoding 是為了讓utf-8開啟 否則就預設win的gbk開啟 #f = open("yesterday",encoding='utf-8' ) #檔

Python------excel拷貝

#-----------------------讀excel-----------------#1 開啟方式 索引、名字#2 獲取行資料 sheet.row_values(0);獲取某行第n到m列(n閉合 m開)#3 獲取行號 sheet.nrows#4 獲取sheet頁個數 book.nsheetsimp

Python基礎知識之檔案修改

基本操作 f = open("file1", "r")  # 開啟檔案 first_line = f.readline() # 讀一行 data = f.read() # 讀取剩下所有內容,檔案大時候不要用 f.close()  #關閉檔案

python檔案刪除複製的操作總結

1. read三種不同的方式f = open('hello.txt') #'hello.txt'指的是檔案的名稱 while True: text = f.readline() #讀取檔

python】open函式檔案操作和轉義符‘\n’

1、open()語法 open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]]) open函式使用一個檔名作為唯一的強制引數,然後返回唯一的檔案物件。 o

1python檔案練習

今天學習了python的檔案讀寫功能,練習一下。 '''    功能:將日誌的內容按照相機ID進行分組顯示      時間:2016-05-26 ''' #開啟原日誌檔案 fp = open(r'log.txt') #建立新檔案用於存放日誌整理後的結果 fs = open

python 文件操作追加的區別

創建 測試文件 表示 int table clas 文件 擦除 不可 打開文件的常用模式有: r ,只讀模式【默認】 w,只寫模式【不可讀;不存在則創建;存在則清空內容;】 a, 追加模式【可讀; 不存在則創建;存在則只追加內容;】 "+" 表示

python檔案指南(二)

我們知道當檔案不存在的時候,open()方法的寫模式與追加模式都會新建檔案,但是對檔案進行判斷的場景還有很多,比如,在爬蟲下載圖片的時候,可能需要判斷檔案是否存在,以免重複下載;又比如,建立新檔案的時候,可能需要判斷檔案是否存在,存在就先做個備份......所以,學習判斷檔案是否存在,還是很有必要的

python檔案指南(一)

目錄   如何將列表資料寫入檔案? 如何從檔案中讀取內容? 多樣需求的讀寫任務 從with語句到上下文管理器 如何將列表資料寫入檔案? 首先,我們來看看下面這段程式碼,並思考:這段程式碼有沒有問題,如果有問題的話,要怎麼改? li = 

遇到錯誤:python檔案許可權permission denied

程式碼shutil.copyfile(os.path.join(sourcepath+'/'+eachclass+ '/',im),valpath+'/'+eachclass+'/'+im)中 訪問後一個路徑上的檔案valpath+'/'+eachclass+'/'+im,im是一個*

Python3 Excel檔案

首先,簡單介紹一下EXECL中工作簿和工作表的區別: 工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET)。 一個工作簿就是一個獨立的檔案 一個工作簿裡面可以有1個或者多個工作表 工作簿是工作表的集合 1:使用python實現對Excel檔案的讀寫

Python檔案深入

讀模式 r 開啟不存在的檔案會報錯、不能寫,如不指定模式則預設是r 寫模式 w 開啟不存在的檔案會,會新建一個檔案;開啟存在的檔案會先清空後覆蓋原有檔案;不能讀 追加模式 a 開啟不存在的檔

Python檔案之r+/w+/a+

讀模式 r 開啟不存在的檔案會報錯、不能寫;如不指定模式則預設是r 寫模式 w 開啟不存在的檔案會,會新建一個檔案;開啟存在的檔案會先清空後覆蓋原有檔案;不能讀 追加模式 a 開啟不存在的檔

java 檔案的IO

直接上程式碼: 1,寫檔案 import java.io.FileWriter; import java.io.IOException; //需求:將一些文字儲存到硬碟一個檔案中。 public class FileWriterDemo { private static fina

Android/Java MP3檔案ID3V1資訊

MP3的歌曲資訊一般分兩個大版本,分別是ID3V1和ID3V2,其中V2又分為好幾個版本,具體百度一下,下方的程式碼僅僅是支援ID3V1。 需要用到的一個輔助工具(juniversalchardet)用於解決亂碼問題,具體看部落格:https://my.oschina.net/u/1462828

pythontxt檔案資料,然後修改資料,再以矩陣形式儲存在檔案

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # -*- coding: UTF-8 -*- import numpy as np import glob import tensorflow as tf flag=T

python 檔案模式r,r+,w,w+,a,a+的區別(附程式碼示例)

如下表 模式 可做操作 若檔案不存在 是否覆蓋 r 只能讀 報錯 - r+ 可讀可寫 報錯 是 w 只能寫 建立 是 w+  可讀可寫 建立   是

Python 檔案

一.file物件(file-like Object) 在標準庫中,不需要安裝 1.file 物件使用 open 函式來建立: f = open(/path/1.txt, mode='r') 2.open函式引數: open(file, mode=‘r’,

Python檔案注意編碼

檔案的讀寫操作1.python3中的預設的編碼解碼方式為utf-8 windows預設使用的編碼方式為gbk 當讀取一個windows檔案(gbk),可以指定讀取時使用的編碼encoding=('gbk')或者不需要指定 with open('a.txt','r','encoding=(gbk)') as f

JAVA關於.CSV檔案的建立操作示例

依賴: <!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv --> <dependenc