Python全棧學習Day8 文件操作

文件操作

如何打開一個文件
1.文件路徑
2.編碼方式:utf-8 gbk
3.操作方式:只讀,只寫,追加,寫讀,讀寫
練習
以什麼方式儲存的文件就要以什麼形式打開,比如gbk

   f = open('d:\馬聖德.txt', mode='r', encoding='gbk')
    content = f.read()
    print(content)
    f.close()

只讀:r

rb:打開或讀取圖片等非文字文件

f = open('d:\馬聖德.txt', mode='rb')
content = f.read()
print(content)
f.close()

在這裏插入圖片描述

只寫:w

第一步:刪除原文件內容全部清除
第二步:將你寫內容添加到文件中
若沒有此文件則創建文件

f = open('馬聖德', mode='w', encoding='gbk')
f.write('山東人')
f.close()

wb:

f = open('馬聖德', mode='wb')
f.write('山東人'.encode('utf-8'))
f.close()

追加:a

f = open('馬聖德', mode='a', encoding='utf-8')
f.write('中國人')
f.close()

ab:以Bytes類型追加進入

f = open('馬聖德', mode='ab')
f.write('很強'.encode('utf-8'))
f.close()

讀,寫

先讀後改

f = open('馬聖德', mode='r+', encoding='utf-8')
print(f.read())
f.write('馬聖德')
f.close()

先改後寫

f = open('馬聖德', mode='r+', encoding='gbk')
f.write('你')
print(f.read())
f.close()

寫,讀

先清除後寫

f = open('馬聖德', mode='w+', encoding='gbk')
f.write('哈哈')
print(f.read())
f.close()

2.a+

  f = open('馬聖德', mode='a+', encoding='gbk')
    f.write('哈哈')
    print(f.read())
    f.close()

功能詳解

read
按字符走

f = open('馬聖德', mode='r+', encoding='gbk')
content = f.read(3)
print(content)
f.close()

seek
按字節走

f = open('馬聖德', mode='r+', encoding='gbk')
f.seek(4)
content = f.read()
print(content)
f.close()

tell()
告訴你光標的位置

f = open('馬聖德', mode='r+', encoding='gbk')
f.seek(4)
ad = f.tell()
print(ad)
f.close()

readline()
一行行的讀

f = open('馬聖德', mode='r+', encoding='gbk')
line = f.readline()
print(line)
f.close()

readlines()
每一行當成列表中的一個元素然後添加到列表中

f = open('馬聖德', mode='r+', encoding='gbk')
line = f.readlines()
print(line)
f.close()

在這裏插入圖片描述
for循環讀取文件

f = open('馬聖德', mode='r+')
for line in f:
    print(line)
f.close()

with

不用寫close

with open('馬聖德', mode='r+') as f:
    print(f.readline())

案例

1.註冊登入(自己寫的)

user = input('請註冊賬號')
pwd = input('請註冊密碼')
with open('賬號', mode='r+') as f1,\
        open('密碼', mode='r+') as f2:
    f1.write(user)
    f1.seek(0)
    index_user = f1.read()
    f2.write(pwd)
    f2.seek(0)
    index_pwd = f2.read()
login_user = input('請輸入賬號')
login_pwd = input('請輸入密碼')
if login_user == index_user and login_pwd == index_pwd:
    print('登入成功')
else:
    print('登入失敗')

老師寫的

user = input('請註冊賬號')
pwd = input('請註冊密碼')
with open('zhanghaomima', mode='w') as f:
    f.write('{}\n{}'.format(user, pwd))
print('註冊成功!')
lis = []
i = 0
while i < 3:
    uname = input('請輸入賬號')
    upwd = input('請輸入密碼')
    with open('zhanghaomima', mode='r+') as f1:
        for line in f1:
            lis.append(line)
        if uname == lis[0].strip() and upwd == lis[1].strip():
            print('登入成功')
            break
        else:
            print('登入失敗')

    i = i + 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章