1. 程式人生 > >檔案的基本操作和各種基礎型別的轉換

檔案的基本操作和各種基礎型別的轉換

s2_day2

一、檔案操作

r 讀

w 寫

a 追加​​​

函式:

f =open('字串',mode = '對檔案的操作模式',encoding = '編碼方式')​​       #f就是檔案控制代碼

with open('字串',mode = '對檔案的操作模式',encoding = '編碼方式')as f     #預設自動關閉

1.r模式 只讀模式

​#r模式​只能讀,

f.read(指定位置)​ #可以指定讀取內容的數量。讀正常文字文字,會將讀取的內容放在記憶體中

,若數量太多,會佔記憶體,故可以使用一行行的輸出,或者使用for迴圈:

for i in f:

print(i)​​

f.readliine()​ #一行一行的讀取,預設每一行末尾會跟著'\n',解決辦法是在後面加.strip()

rb​在使用b的操作方式的時候不能指定編碼方式,是操作位元組的

s = f.read(指定位置)        #讀取的是位元組,可以指定輸出的位元組的個數

2.w模式 只寫模式

w模式只能覆蓋寫會自動建立檔案,寫入的時候先清空後寫入

f.white('寫入內容')​    #寫入​ ​

3. a模式 追加模式

#a模式是追加寫,不能讀,在文字末尾新增內容

f.white('追加寫的內容')​

4.r+模式,是讀寫模式​

必須先讀後寫 r模式預設游標在最前面,故不能先寫後讀

s = f.read()

print(s)

f.write()​​​

 

5.w+ 寫讀模式​

f.write('寫入內容')​

f.flush() #重新整理​

f.seek(游標往前調的位元組數,游標調到當前位置)              #裡面​寫0是調整游標到最開頭​

s = f.read()​

6.a+模式 追加(寫) 讀模式

#不管把游標怎麼調​追加的內容都在最後面​​

7.只要模式名後面帶b就是操作位元組​

8.其他操作:

f.seek()     #移動游標位置​

f.tell()      #返回游標的位置(位元組數)

f.close()    #關閉檔案 檔案關閉之後無法​進行 ​ 寫入,要重新開啟才能進行操作

f.truncate()​     #截斷,將游標後面的內容刪除

 

相對路徑:  相對於正在操作的檔案所在的位置

轉義:  ​​\  改成   //      #有時需要轉義在前面加r 或者使用雙斜槓

'.../day6/01 今日內容'    相對路徑是相對於當前檔案來說的路徑

推薦使用相對路徑

絕對路徑:  從磁碟開始尋找這個檔案的路徑          ​​ 

eg: C:\Users\Administrator\Desktop​\t.txt

二、資料型別轉換

str() #可以轉換任何資料型別

int() #可以轉換str中單個數字

bool() #其中有0,False,{},[],'',()表示False,別的都是True

list() #除了數字和bool值之外都可以轉換 ,轉換字典是隻能轉換其中的鍵,即可迭代的資料型別

tuple() #除了數字和bool值之外都可以轉換 ,轉換字典是隻能轉換其中的鍵,即可迭代的資料型別

dict() #什麼型別都不能轉換

set() #除了數字和bool值之外都可以轉換 ,轉換字典是隻能轉換其中的鍵,即可迭代的資料型別

#資料型別轉換
str()         #可以轉換任何資料型別
int()         #可以轉換str中單個數字
bool()        #其中有0,False,{},[],'',()表示False,別的都是True
list()        #除了數字和bool值之外都可以轉換 ,轉換字典是隻能轉換其中的鍵,即可迭代的資料型別
tuple()       #除了數字和bool值之外都可以轉換 ,轉換字典是隻能轉換其中的鍵,即可迭代的資料型別
dict()        #什麼型別都不能轉換
print(set({'alex':1,'2':3})) #除了數字和bool值之外都可以轉換 ,轉換字典是隻能轉換其中的鍵,即可迭代的資料型別

 

課堂隨筆:

#w模式
'''
f = open('1',mode = 'a+',encoding= 'utf-8')         #w+必須是先寫在讀
f.seek(18)
f.write('我真帥')
f = open('1',mode = 'w',encoding= 'utf-8')
f.write('我好帥真滴帥我最帥')
f.close()
f = open('1',mode = 'w',encoding= 'utf-8')           #w模式自動會覆蓋前面的內容
f.write('我真帥')
f.close()
'''
#r模式
'''
f = open('2',mode = 'r+',encoding = 'utf-8')            #r+模式必須是先讀後寫
print(f.read())
print(f.write('我好美,你喜歡不'))
print(f.read())
= open('2', mode='r', encoding='utf-8')
s = f.read()
for i in f:
    s1 = f.readline()
    print(i)
'''

#對文字內容進行修改,實質是將需要的內容寫在另一個文字中,然後將原文字刪了,將含有需要的內容的文字改名為原文字的名字,即完成修改.
'''
with open('1',mode = 'w',encoding = 'utf-8') as f,\
        open('2',mode = 'r',encoding = 'utf-8' ) as ff:
    for i in ff:
        s = i.replace('醜','帥')
        print(s)
        f.write(s)
import os
os.remove('2')
os.rename('1','2')
'''