#文件:通過python程序來對計算機(jī)的各種文件進(jìn)行增刪改查的操作
# #IO(Input/Output)
# # #操作文件的步驟 1.打開文件 2.對文件的操作 讀寫 3.關(guān)閉
# # #若果目標(biāo)文件和當(dāng)前文件在同一路徑下可以直接使用文件名
# # a = 'e.txt'
# # f = open(a)#打開文件可以用open
# # #print(f)<_io.TextIOWrapper name='a.txt' mode='r' encoding='cp936'>
# # f.close()#我們要想關(guān)閉函數(shù)可以使用函數(shù)close
# #with...as....語句
# #如果已經(jīng)關(guān)閉了文件可以用with....as
# # try:
# #? ? with open(a) as f:#with as語句不用寫close因為默認(rèn)已經(jīng)寫了
# #? ? ? ? print(f.read())
# # except FileExistsError:
# #? ? print(f'{a}文件不存在')
# #調(diào)用open是打開一個文件 文件可以分為二種類型 一種是純文本文件utf-8等編碼
# #編寫的文件 另一種是二進(jìn)制文件比如圖片 音樂 ppt
# #open()默認(rèn)是以文本文件打開 文本里如果是中文的話需要en? = utf-8
# #read函數(shù)可以把文件的內(nèi)容一次性全部讀取出來 但這樣是有隱患的 如果文件過大 會對內(nèi)存造成很大影響
# #read可以接受一個size作為參數(shù) 改參數(shù)可以用來指定讀取字符的數(shù)量
#
# a = 'ab.txt'
# with open(a,encoding='utf-8') as f:
#? ? # e = f.read(6)
#? ? # e = f.read(6) #read里面制定的參數(shù)可以決定每一次讀多少個字符
#? ? # print(e)#如果字符的數(shù)量小于制定的size則會讀取所剩余的所有內(nèi)容
#? ? # #如沒有內(nèi)容則會返回一個空串
#? ? # print(len(e))
#? ? #我們可以定義一個變量來指定每次讀寫的大小
#? ? c = 100
#? ? #創(chuàng)建一個循環(huán)來讀取文件的內(nèi)容
#? ? while True:
#? ? ? ? cont = f.read(c)
#? ? ? ? if not cont:
#? ? ? ? ? ? #沒有內(nèi)容跳出循環(huán)
#? ? ? ? ? ? break
#? ? ? ? print(cont)
# #其他的讀取方式
# #文件的寫入
# # file_name = 'demo1.txt'
# # with open(file_name,encoding='utf-8') as file_obj:
# #? ? # print(file_obj.readline())#readline可以讀取每一行內(nèi)容
# #? ? # print(file_obj.readline())
# #? ? # print(file_obj.readline())
# #? ? # #readlines可以讀取封裝到一個列表中返回
# #? ? r = file_obj.readlines()
# #? ? print(r[2])
# #
# #
# file_name = 'demo1.txt'
# with open(file_name,'a',encoding='utf-8') as file_obj:#因為open默認(rèn)模式是r,并沒有寫文件的權(quán)限所以不寫模式會報錯的
#? ? #write函數(shù)可以往文件中寫內(nèi)容
#? ? file_obj.write('I am the bone of my sword.\n')
#? ? #w表示是寫 文件存在則會寫入文件類容 如果文件不存在會創(chuàng)建文件
#
#? ? file_obj.write('Steel is my body, and fire is my blood\n')
#? ? file_obj.write('I have created over a thousand blades.\n')
#? ? file_obj.write('Unknown to Death.\n')
#? ? file_obj.write('Nor known to Life.\n')
#? ? file_obj.write('Have withstood pain to create many weapons..\n')
#? ? file_obj.write('Yet, those hands will never hold anything.\n')
# #? ? file_obj.write('So as I pray, unlimited blade works.\n')
# # #除了w r a外還有x是創(chuàng)建文件有就報錯沒有就創(chuàng)建 r+既可讀又可寫
# a =r'C:\Users\Administrator\Desktop\LiSA - oath sign.mp3'
# with open(a,'rb') as f:
#? ? #讀取文本文件時size是以字符為單位 我們讀取二進(jìn)制文件時候size字節(jié)為單位 三個字節(jié)等于一個字符
#? ? print(f.read(100))
#? ? fate = 'fate.mp3'
#? ? with open(fate,'wb') as e:
#? ? ? ? c = 1024 * 100
#? ? ? ? while True:
#? ? ? ? ? ? co = f.read(c)
#? ? ? ? ? ? #讀完后的判斷
#? ? ? ? ? ? if not? co:
#? ? ? ? ? ? ? ? break
#? ? ? ? ? ? #將讀取到的數(shù)據(jù)寫入新文件中
#? ? ? ? ? ? e.write(co)
#讀取文件的位置
# with open('demo1.txt','rb') as file_onj:
#? ? file_onj.seek(6)#seek函數(shù)可以修改當(dāng)前位置讀取的函數(shù)(書簽)
#? ? print(file_onj.read(5))#5 +6 = 11我們從六開始讀的
#? ? print('讀取到了',file_onj.tell())#tell這個函數(shù)可以檢查當(dāng)前讀取的位置
# #seek參數(shù):0 從頭開始計算 1從當(dāng)前位置計算 2是從最后位置計算
#
# with open('demo4.txt','rt',encoding='utf-8') as f:
#? ? f.seek(6)#3個字節(jié)是一個字符 而中文是一個字符,所以10的話認(rèn)不出來seek可以對中文操作 但必須和字符對應(yīng)上
#? ? print(f.read())
import os
r = os.listdir('..')#獲取當(dāng)前的目錄結(jié)構(gòu) 默認(rèn)是一個.,..是返回上層目錄
print(r)
r = os.getcwd()#這是獲取當(dāng)前所在目錄
#切換當(dāng)前所在的目錄相當(dāng)于cd
os.mkdir('abc')#創(chuàng)建目錄
os.rmdir('abc')#刪除目錄