1. 程式人生 > 實用技巧 >第七天知識總結

第七天知識總結

檔案操作:
# # 1.檔案路徑:分為絕對路徑和相對路徑
# # 2.編碼方式:utf-8,jbk.....
# # 3.操作方式:只讀,只寫,追加,讀寫,寫讀
1.只讀(r,rb);加個b的意思是以bytes型別追加進去(在圖片中用)


f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r', encoding='gbk')
content = f.read()
print(content)
f.close()
#
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='
rb') content = f.read() print(content) f.close()

2.只寫(w,wb),沒有檔案的話就建立,有就先將原始檔內容刪除再寫

f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='w',encoding='utf-8')
content = f.write('內容')
print(content)
f.close()
#
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='w',encoding='utf-8')
content 
= f.write('內容還有內容') f.close() # f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='wb') content = f.write('內容sfs'.encode('utf-8')) f.close()

3.追加(a)

f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='a',encoding='utf-8')
content = f.write(',新的東西')
f.close()
#
f = open('C:/Users/Administrator/Desktop/python例子.txt
', mode='ab',) content = f.write(',好的天氣'.encode('utf-8')) f.close()

4.讀寫,只能先讀再寫,否則會出現佔位;寫讀中,同理只能先寫再讀(w+;還有a+



f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='utf-8')
print(f.read())
print(f.write(',太陽'))
f.close()
#
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+b')
print(f.read())
print(f.write(',太陽1'.encode('utf-8')))
f.close()

5.查詢時移動游標seek()

f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk')
# content = f.read(2)     # 讀出來的都是字元
f.seek(2)                 # 按照位元組去定游標的位置
content = f.read()
print(content)
f.close()

6.告訴你游標的位置tell()

f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='a+',encoding='gbk')
f.write('你好')
count = f.tell()
f.seek(count - 4)          # 只讀最後兩個
print(f.read())
f.close()

7.其他知識點



f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk')
print(f.readable())               # 是否可讀readable(),返回值時T或者F
print(f.readline())               # 一行一行的讀
print(f.readlines())              # 每一行當成列表中的一個元素,新增到列表中
f.truncate()                        # 擷取
f.close()

8.迴圈讀取

f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk')
for i in f:
    print(i.strip())          # strip去除換行
f.close()

9.with(開啟時最後可以不用寫close,同時還可以開啟多個並進行多種操作,一般都是用的這種開啟方式)



with open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk') as f,\
    open('C:/Users/Administrator/Desktop/python例子.txt', mode='w+', encoding='gbk') as i:
with open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk') as f:
    print(f.read())

10.課後作業:簡單的實現使用者註冊登入



username_registered = input('請輸入要註冊的使用者名稱')
password_registered = input('請輸入要註冊的密碼')
with open('C:/Users/Administrator/Desktop/使用者資訊.txt', mode='w',encoding='utf-8') as f:
    f.write('{}\n{}'.format(username_registered,password_registered))
print('恭喜註冊成功')
i = 0
lis = []
while i < 3:
    username = input('請輸入使用者名稱')
    password = input('請輸入密碼')
    with open('C:/Users/Administrator/Desktop/使用者資訊.txt', mode='r+',encoding='utf-8') as f1:
        for k in f1:
            lis.append(k)
    if username == lis[0].strip() and password == lis[1].strip():
        print('登入成功')
        break
    else:
        print('登入失敗,請重新輸入')
    i += 1