Python基礎學習——讀取檔案,相對路徑和絕對路徑
讀取檔案,相對路徑和絕對路徑
window上檔案路徑的分隔符是(C:\Users\Administrator\PycharmProjects\JK\testcase)
import os
建立檔名稱的字串
myFiles=[‘accouts.txt’,‘details.csv’,‘invite.docx’]
for filename in myFiles:
print(os.path.join(‘C:\Users\Exercise\openWriteFiles’,filename))
#獲取當前路徑
print(os.getcwd())
#改變當前路徑
os.chdir(‘C:\Users\Exercise\openWriteFiles’)
print(os.getcwd())
os.chdir(‘C:\Users\Administrator\PycharmProjects\JK\testcase’)
print(os.getcwd())
建立新的資料夾
os.rmdir(‘C:\Users\Exercise\openWriteFiles\newFolder’)
移除一個資料夾
os.makedirs(‘C:\Users\Exercise\openWriteFiles\newFolder’)
處理相對路徑和絕對路徑
1.os.path.isabs()判斷是否是絕對路徑,如果是,返回True
print(os.path.isabs(‘C:\Users\Exercise\openWriteFiles\invite.docx’))
print(os.path.isabs(’.\FileTester.txt’))
2.os.path.abspath()相對路徑轉化為絕對路徑
print(os.path.abspath(’.\FileTester.txt’))
3.os.path.relpath(path,start)將返回從start路徑到path的相對路徑的字串,如果沒有提供start,預設為當前工作目錄
print(os.path.relpath(‘C:\Users\Administrator\PycharmProjects\JK\data’))
4.讀取具體檔案的路徑:目錄名稱
url=‘C:\Users\Administrator\PycharmProjects\JK\data\data.xlsx’
print(os.path.dirname(url))
5.讀取具體檔案的基本名稱
print(os.path.basename(‘C:\Users\Administrator\PycharmProjects\JK\data\data.xlsx’))
6. 獲取關於路徑目錄名稱和檔名稱的元祖
print(os.path.split(url))
7. 對檔案內容進行分割,但在linux和mac系統上,返回的列表頭上有一個空字串
print(url.split(os.path.sep))
8. 檢視檔案大小和資料夾內容
print(os.path.getsize(url)) # 返回單位:9979位元組
print(os.listdir(‘C:\Users\Administrator\PycharmProjects\JK\data’))
filepath=os.listdir(’…\data’)
totalSize=0
for filename in filepath:
totalSize=totalSize+os.path.getsize(os.path.join(’…\data’,filename))
print(totalSize)
9.檢查路徑的有效性
檢查檔案和資料夾的有效性
print(os.path.exists(‘C:\Users\Administrator\PycharmProjects\JK\data’))
print(os.path.exists(‘C:\Users\Administrator\PycharmProjects\JK\testcase\FileTester.txt’))
檢查檔案的有效性
print(os.path.isfile(‘C:\Users\Administrator\PycharmProjects\JK\data’))
print(os.path.isfile(‘C:\Users\Administrator\PycharmProjects\JK\testcase\FileTester.txt’))
檢查資料夾的有效性
print(os.path.isdir(‘C:\Users\Administrator\PycharmProjects\JK\data’))
print(os.path.isdir(‘C:\Users\Administrator\PycharmProjects\JK\testcase\FileTester.txt’))
10. 檔案讀寫過程
1.呼叫open()函式,返回一個file物件
2.呼叫file物件的read()或write()方法
3. 呼叫file物件的close()方法,關閉該檔案
readTxtFile=open(’…\data\data.txt’)
txtFileContent=readTxtFile.read()
print(txtFileContent)
readTxtFile.close()
—read()返回儲存在檔案中的字串
—readlines()返回儲存在檔案中的字串的列表,每個字串是一行
readTxtFile=open(’…\data\data.txt’)
txtFileLineContent=readTxtFile.readlines()
print(txtFileLineContent)
readTxtFile.close()
—write寫檔案有兩種模式
一是寫模式,‘w’,覆蓋掉原檔案
二是新增模式,‘a’,在檔案的末尾新增文字
newTxtFile=open(‘newTxt.txt’,‘w’)
newTxtFile.write(‘Hello World!\n’)
newTxtFile.close()
newTxtFile=open(‘newTxt.txt’,‘a’)
newTxtFile.write(‘Hello World!\n’)
newTxtFile.close()
newTxtFile=open(‘newTxt.txt’)
txtNewFileContent=newTxtFile.read()
newTxtFile.close()
print(txtNewFileContent)
11、windows系統中shelve模組儲存變數,生成三個檔案,不清楚具體邏輯
import shelve
shelfFile=shelve.open(‘mydata’)
animals=[‘cat’,‘dog’,‘panda’]
shelfFile[‘animals’]=animals
shelfFile.close()
shelfFile=shelve.open(‘mydata’)
print(type(shelfFile)) # <class ‘shelve.DbfilenameShelf’>
print(shelfFile[‘animals’]) #[‘cat’, ‘dog’, ‘panda’]
shelfFile.close()
shelfFile=shelve.open(‘mydata’)
print(list(shelfFile.values()))
print(list(shelfFile.keys()))
shelfFile.close()
12、pprint.pformat()函式將檔案內容寫入.py檔案
import pprint
vegetables=[{‘name’:‘tomatoes’,‘desc’:‘salty’},{‘name’:‘potato’,‘desc’:‘delicious’}]
print(pprint.pformat(vegetables))
fileobj=open(‘myvegetables.py’,‘w’)
fileobj.write(‘vegetables=’+pprint.pformat(vegetables)+’\n’)
fileobj.close()
記日誌的四種級別:
import logging
logging.basicConfig(filename=‘mylog.txt’,level=logging.DEBUG,format=’ %(asctime)s - %(levelname)s - %(message)s’)
logging.debug(‘some debugging details.’)
logging.warning(‘the logging module is still working.’)
logging.error(‘an error has occurred.’)
logging.critical(‘the progress is unable to recover.’)
除錯程式的五種過程:
1、go
2、step
3、over
4、out
5、quit