python 讀寫文件

一、文件及其路徑相關函數


os.path.dirname(path)  返回路徑中的目錄路徑python

os.path.join(路徑參數)   返回完整的路徑less

os.path.split(path)   分割目錄路徑和文件名,返回這兩個組成的元組
os.path.getsize(path)  獲取文件大小,返回字節數
os.listdir(path)  將返回文件名字符串的列表,即目錄下全部文件函數

os.makedirs(路徑) 建立目錄spa

os.getcwd()  獲取當前目錄code

os.chdir(路徑)  切換目錄,當目錄不存在時會報 FileNotFoundError 異常對象

 

myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
for filename in myFiles:
    print(os.path.join('C:\\Users\\asweigart', filename))
#C:\Users\asweigart\accounts.txt
#C:\Users\asweigart\details.csv
#C:\Users\asweigart\invite.docx

相對路徑和絕對路徑:ip

• 調用 os.path.abspath(path)將返回參數的絕對路徑的字符串。這是將相對路徑轉
換爲絕對路徑的簡便方法。
• 調用 os.path.isabs(path),若是參數是一個絕對路徑,就返回 True,若是參數是
一個相對路徑,就返回 False。
• 調用 os.path.relpath(path, start)將返回從 start 路徑到 path 的相對路徑的字符串。
若是沒有提供 start,就使用當前工做目錄做爲開始路徑字符串

os.path.abspath('.')
#'C:\\Python34'
os.path.abspath('.\\Scripts')
#'C:\\Python34\\Scripts'
os.path.isabs('.')
#False
os.path.isabs(os.path.abspath('.'))
#True

os.path.relpath('C:\\Windows', 'C:\\')
#'Windows'
os.path.relpath('C:\\Windows', 'C:\\spam\\eggs')
#'..\\..\\Windows'
os.getcwd()
#'C:\\Python34'

檢查路徑有效性:get

os.path.exists('C:\\Windows')   #路徑是否存在
#True
os.path.exists('C:\\some_made_up_folder')
#False
os.path.isdir('C:\\Windows\\System32') 是否存在而且是目錄
#True
os.path.isfile('C:\\Windows\\System32') 是否存在而且是文件
#False
os.path.isdir('C:\\Windows\\System32\\calc.exe')
#False
os.path.isfile('C:\\Windows\\System32\\calc.exe')
#True

二、文件讀寫過程

在 Python 中, 讀寫文件有 3 個步驟:it

  • 1. 調用 open()函數, 返回一個 File 對象。
  • 2.調用 File 對象的 read()或 write()方法。
  • 3.調用 File 對象的 close()方法,關閉該文件。
     
sonnetFile = open('001.txt','w')
content = '''When, in disgrace with fortune and men's eyes,
             I all alone beweep my outcast state,
             And trouble deaf heaven with my bootless cries,
             And look upon myself and curse my fate,'''

sonnetFile.write(content)
sonnetFile.close()

with open('001.txt','r') as f:
    print f.readlines()

三、遍歷目錄

os.walk()函數被傳入一個字符串值,即一個文件夾的路徑。os.walk()在循環的每次迭代中,返回 3 個值:
1. 當前文件夾名稱的字符串。
2.當前文件夾中子文件夾的字符串的列表。
3. 當前文件夾中文件的字符串的列表。

import os
for folderName, subfolders, filenames in os.walk('E:\\pyscripts'):
    print('The current folder is ' + folderName)
    for subfolder in subfolders:
        print('SUBFOLDER OF ' + folderName + ': ' + subfolder)
    for filename in filenames:
        print('FILE INSIDE ' + folderName + ': '+ filename)
    print('')
相關文章
相關標籤/搜索