Python常見(jiàn)文件操作的函數(shù)示例代碼
# -*-coding:utf8 -*-
'''
Python常見(jiàn)文件操作示例
os.path 模塊中的路徑名訪問(wèn)函數(shù)
分隔
basename() 去掉目錄路徑, 返回文件名
dirname() 去掉文件名, 返回目錄路徑
join() 將分離的各部分組合成一個(gè)路徑名
split() 返回 (dirname(), basename()) 元組
splitdrive() 返回 (drivename, pathname) 元組
splitext() 返回 (filename, extension) 元組
信息
getatime() 返回最近訪問(wèn)時(shí)間
getctime() 返回文件創(chuàng)建時(shí)間
getmtime() 返回最近文件修改時(shí)間
getsize() 返回文件大小(以字節(jié)為單位)
查詢
exists() 指定路徑(文件或目錄)是否存在
isabs() 指定路徑是否為絕對(duì)路徑
isdir() 指定路徑是否存在且為一個(gè)目錄
isfile() 指定路徑是否存在且為一個(gè)文件
islink() 指定路徑是否存在且為一個(gè)符號(hào)鏈接
ismount() 指定路徑是否存在且為一個(gè)掛載點(diǎn)
samefile() 兩個(gè)路徑名是否指向同個(gè)文件
os.path.isdir(name):判斷name是不是一個(gè)目錄,name不是目錄就返回false
os.path.isfile(name):判斷name是不是一個(gè)文件,不存在name也返回false
os.path.exists(name):判斷是否存在文件或目錄name
os.path.getsize(name):獲得文件大小,如果name是目錄返回0L
os.path.abspath(name):獲得絕對(duì)路徑
os.path.normpath(path):規(guī)范path字符串形式
os.path.split(name):分割文件名與目錄(事實(shí)上,如果你完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)
os.path.splitext():分離文件名與擴(kuò)展名
os.path.join(path,name):連接目錄與文件名或目錄
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路徑
os模塊中的文件操作:
os 模塊屬性
linesep 用于在文件中分隔行的字符串
sep 用來(lái)分隔文件路徑名的字符串
pathsep 用于分隔文件路徑的字符串
curdir 當(dāng)前工作目錄的字符串名稱
pardir (當(dāng)前工作目錄的)父目錄字符串名稱
1.重命名:os.rename(old, new)
2.刪除:os.remove(file)
3.列出目錄下的文件:os.listdir(path)
4.獲取當(dāng)前工作目錄:os.getcwd()
5.改變工作目錄:os.chdir(newdir)
6.創(chuàng)建多級(jí)目錄:os.makedirs(r"c:\python\test")
7.創(chuàng)建單個(gè)目錄:os.mkdir("test")
8.刪除多個(gè)目錄:os.removedirs(r"c:\python") #刪除所給路徑最后一個(gè)目錄下所有空目錄。
9.刪除單個(gè)目錄:os.rmdir("test")
10.獲取文件屬性:os.stat(file)
11.修改文件權(quán)限與時(shí)間戳:os.chmod(file)
12.執(zhí)行操作系統(tǒng)命令:os.system("dir")
13.啟動(dòng)新進(jìn)程:os.exec(), os.execvp()
14.在后臺(tái)執(zhí)行程序:osspawnv()
15.終止當(dāng)前進(jìn)程:os.exit(), os._exit()
16.分離文件名:os.path.split(r"c:\python\hello.py") --> ("c:\\python", "hello.py")
17.分離擴(kuò)展名:os.path.splitext(r"c:\python\hello.py") --> ("c:\\python\\hello", ".py")
18.獲取路徑名:os.path.dirname(r"c:\python\hello.py") --> "c:\\python"
19.獲取文件名:os.path.basename(r"r:\python\hello.py") --> "hello.py"
20.判斷文件是否存在:os.path.exists(r"c:\python\hello.py") --> True
21.判斷是否是絕對(duì)路徑:os.path.isabs(r".\python\") --> False
22.判斷是否是目錄:os.path.isdir(r"c:\python") --> True
23.判斷是否是文件:os.path.isfile(r"c:\python\hello.py") --> True
24.判斷是否是鏈接文件:os.path.islink(r"c:\python\hello.py") --> False
25.獲取文件大?。簅s.path.getsize(filename)
26.*******:os.ismount("c:\\") --> True
27.搜索目錄下的所有文件:os.path.walk()
shutil模塊對(duì)文件的操作:
1.復(fù)制單個(gè)文件:shultil.copy(oldfile, newfle)
2.復(fù)制整個(gè)目錄樹(shù):shultil.copytree(r".\setup", r".\backup")
3.刪除整個(gè)目錄樹(shù):shultil.rmtree(r".\backup")
臨時(shí)文件的操作:
1.創(chuàng)建一個(gè)唯一的臨時(shí)文件:tempfile.mktemp() --> filename
2.打開(kāi)臨時(shí)文件:tempfile.TemporaryFile()
內(nèi)存文件(StringIO和cStringIO)操作
[4.StringIO] #cStringIO是StringIO模塊的快速實(shí)現(xiàn)模塊
1.創(chuàng)建內(nèi)存文件并寫(xiě)入初始數(shù)據(jù):f = StringIO.StringIO("Hello world!")
2.讀入內(nèi)存文件數(shù)據(jù):print f.read() #或print f.getvalue() --> Hello world!
3.想內(nèi)存文件寫(xiě)入數(shù)據(jù):f.write("Good day!")
4.關(guān)閉內(nèi)存文件:f.close()
'''
import os
import os.path
import unittest
import time
#import pygame
class PyFileCommonOperatorTest(unittest.TestCase):
def __init__(self):
"""constructor"""
def test01(self):
print os.linesep
print os.sep
print os.pathsep
print os.curdir
print os.pardir
print os.getcwd()
print 'unittest here'
if __name__ == "__main__":
t = PyFileCommonOperatorTest()
t.test01()
#讀文件的寫(xiě)法:
#讀文本文件:
input = open('data', 'r')#第二個(gè)參數(shù)是默認(rèn)的,可以不加
#讀二進(jìn)制文件:
input = open('data', 'rb')
#讀取所有文件內(nèi)容:
open('xxoo.txt').read()
#讀取固定字節(jié)
open('abinfile', 'rb').read(100)
#讀每行
file_object.readlines()
相關(guān)文章
python安裝cx_Oracle模塊常見(jiàn)問(wèn)題與解決方法
這篇文章主要介紹了python安裝cx_Oracle模塊常見(jiàn)問(wèn)題與解決方法,舉例分析了Python在Windows平臺(tái)與Linux平臺(tái)安裝cx_Oracle模塊常見(jiàn)問(wèn)題、解決方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-02-02
Python 自制簡(jiǎn)單版《我的世界》的詳細(xì)過(guò)程
這篇文章主要介紹了教你用 Python 自制簡(jiǎn)單版《我的世界》,接下來(lái),我們就帶你運(yùn)行這個(gè)項(xiàng)目,并對(duì)這個(gè)開(kāi)源的小游戲做一下簡(jiǎn)單的更改,讓它變成“你的”世界2021-11-11
python多進(jìn)程及通信實(shí)現(xiàn)異步任務(wù)的方法
這篇文章主要介紹了python多進(jìn)程及通信實(shí)現(xiàn)異步任務(wù)需求,本人也是很少接觸多進(jìn)程的場(chǎng)景,對(duì)于python多進(jìn)程的使用也是比較陌生的。在接觸了一些多進(jìn)程的業(yè)務(wù)場(chǎng)景下,對(duì)python多進(jìn)程的使用進(jìn)行了學(xué)習(xí),覺(jué)得很有必要進(jìn)行一個(gè)梳理總結(jié),感興趣的朋友一起看看吧2022-05-05
Python的Tornado框架實(shí)現(xiàn)異步非阻塞訪問(wèn)數(shù)據(jù)庫(kù)的示例
Tornado框架的異步非阻塞特性是其最大的亮點(diǎn),這里我們將立足于基礎(chǔ)來(lái)介紹一種簡(jiǎn)單的Python的Tornado框架實(shí)現(xiàn)異步非阻塞訪問(wèn)數(shù)據(jù)庫(kù)的示例:2016-06-06
python數(shù)據(jù)分析基礎(chǔ)知識(shí)之shape()函數(shù)的使用教程
shape函數(shù)是numpy.core.fromnumeric中的函數(shù),它的功能是讀取矩陣的長(zhǎng)度,比如shape[0]就是讀取矩陣第一維度的長(zhǎng)度,下面這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析基礎(chǔ)知識(shí)之shape()函數(shù)使用的相關(guān)資料,需要的朋友可以參考下2022-09-09
Scrapy爬蟲(chóng)文件批量運(yùn)行的實(shí)現(xiàn)
這篇文章主要介紹了Scrapy爬蟲(chóng)文件批量運(yùn)行的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
穩(wěn)扎穩(wěn)打?qū)WPython之容器 可迭代對(duì)象 迭代器 生成器專題講解
在剛開(kāi)始學(xué)Python的時(shí)候,是不是經(jīng)常會(huì)聽(tīng)到大佬們?cè)谥v容器、可迭代對(duì)象、迭代器、生成器、列表/集合/字典推導(dǎo)式等等眾多概念,其實(shí)這不是大佬們沒(méi)事就擱那扯專業(yè)術(shù)語(yǔ)來(lái)裝B,而是這些東西都得要明白的,光知道字符串、列表等基礎(chǔ)還是不夠的,尤其是在Python的數(shù)據(jù)結(jié)構(gòu)方面2021-10-10
python光學(xué)仿真實(shí)現(xiàn)光線追跡之空間關(guān)系
這篇文章主要介紹了python光學(xué)仿真中實(shí)現(xiàn)光線追跡的空間關(guān)系示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10

