1. 程式人生 > >Python基礎學習——讀取檔案,相對路徑和絕對路徑

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