文件操作
如何打開一個文件
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