日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python对操作系统的目录和文件操作

發布時間:2025/4/14 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python对操作系统的目录和文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、獲取當前目錄下的特定文件列表

>>>import glob,os
>>>curdir = os.getcwd()?? #獲取當前目錄

>>>os.chdir(workdir)??????? #設置當前目錄

>>>dir = glob.glob('*.dat')? #獲取當前目錄的dat文件列表

>>>os.chdir(curdir)?????????? #還原當前工作目錄

>>>print dir
['mudlog.dat','ddd.dat']


二、os模塊的文件和目錄操作函數
1.獲得當前路徑
os.getcwd()?

? 該函數不需要傳遞參數,它返回當前的目錄。
??
>>> import os
>>> print 'current directory is ',os.getcwd()
current directory is? D:/Python25/Lib/site-packages/pythonwin
#這里是PythonWin的安裝目錄

2.獲得目錄中的內容
os.listdir(path)???? path:要獲得內容目錄的路徑。

>>> import os
>>> os.listdir(os.getcwd())??? # 獲得當前目錄中的內容
['dde.pyd', 'license.txt', 'Pythonwin.exe', 'scintilla.dll', 'win32ui.pyd',
'win32uiole.pyd', 'pywin']

3.創建目錄
os.mkdir(path)??? path:要創建目錄的路徑。

>>> import os
>>> os.mkdir('E://book//temp')?? # 使用os.mkdir創建目錄

4.刪除目錄
os.rmdir(path)?? path:要刪除的目錄的路徑。

>>> import os
>>> os.rmdir('E://book//temp')?? # 刪除目錄

需要說明的是,使用os.rmdir刪除的目錄必須為空目錄,否則函數出錯。

若想刪除非空目錄,先刪除目錄下的文件,然后再刪除目錄,遞歸過程。

5.判斷是否是目錄
os.path.isdir(path)??? path:要進行判斷的路徑。

>>> import os
>>> os.path.isdir('E://book//temp')? # 判斷E:/book/temp是否為目錄
True?????????? # 表E:/book/temp是目錄

6.判斷是否為文件
os.path.isfile(path)?? path:要進行判斷的路徑。

>>> import os
>>> os.path.isfile('E://book//temp')? # 判斷是否為文件
False?????????? # 表示E:/book/temp不是文件


三、批量重命名

在日常工作中經常會遇到這樣的情況,需要將某個文件夾下的文件按照一定的規律重新命名。如果手工完成的話,需要耗費大量的時間,而且

容易出錯。在學習Python以后,完全可以寫一個簡單的腳本完成這樣的工作。

import os
perfix = 'Python'????? # perfix 為重命名后的文件起始字符
length = 2???????? # length 為除去perfix后,文件名要達到的長度
base = 1???????? # 文件名的起始數
format = 'mdb'?????? # 文件的后綴名
? # 函數PadLeft將文件名補全到指定長度
# str 為要補全的字符
# num 為要達到的長度
# padstr 為達到長度所添加的字符
def PadLeft(str , num , padstr):
stringlength = len (str)
n = num - stringlength
if n >=0 :
str=padstr * n + str
return str
? # 為了避免誤操作,這里先提示用戶
print 'the files in %s will be renamed' % os.getcwd()
input = raw_input('press y to continue/n') # 獲取用戶輸入
if input != 'y':?????? # 判斷用戶輸入,以決定是否執行重命名操作
exit()
filenames = os.listdir(os.curdir)?? # 獲得當前目錄中的內容
? # 從基數減1,為了使下邊 i = i + 1在第一次執行時等于基數
i = base - 1
for filename in filenames:??? # 遍歷目錄中內容,進行重命名操作
i = i+1
? # 判斷當前路徑是否為文件,并且不是“rename.py”
if filename != "rename.py" and os.path.isfile(filename):
name = str(i)????? # 將i轉換成字符
name = PadLeft(name,length,'0') # 將name補全到指定長度
t = filename.split('.')?? # 分割文件名,以檢查其是否是所要修改的類型
m = len(t)
if format == '':???? # 如果未指定文件類型,則更改當前目錄中所有文件
os.rename(filename,perfix+name+'.'+t[m-1])
else:??????? # 否則只修改指定類型
if t[m-1] == format:
os.rename(filename,perfix+name+'.'+t[m-1])
else:
i = i – 1???? # 保證i連續
else:
i = i – 1?????? # 保證i連續


四、代碼框架生成器
編寫代碼要養成良好的習慣,為了使腳本更具可讀性,往往需要添加注釋,而且還應該在腳本頭添加基本的說明,如作者、文件名、日期、用途、版權說明,以及所 需要使用的模塊等信息。這樣,不僅便于保存腳本,而且也便于交流。但是,如果每次編寫一個腳本就依次添加這樣的信息,不免有些麻煩,以下代碼實現了一個簡 單的代碼框架生成器。

# -*- coding:utf-8 -*-
# file: MakeCode.py
#
import os
import sys
import string
import datetime
# python腳本模板
py = '''#-----------------------------------------------------
# TO:??????
#-----------------------------------------------------
# BY:
#-----------------------------------------------------
'''
# c模板
c = ''' *-----------------------------------------------------
* TO:??????
*-----------------------------------------------------
* BY:
*-----------------------------------------------------
'''
if os.path.isfile(sys.argv[1]):?? # 判斷要創建的文件是否存在,如果存在則退出腳本
print '%s already exist!' % sys.argv[1]
sys.exit()
file = open(sys.argv[1], 'w')??? # 創建文件
today = datetime.date.today()??? # 獲得當前日期,并格式化為xxxx-xx-xx的形式
date = today.strftime('%Y')+'-'+today.strftime('%m')+'-'+today.strftime('%d')
filetypes = string.split(sys.argv[1],'.') # 判斷將創建的文件是什么類型以便對其分別處理
length = len(filetypes)
filetype = filetypes[length - 1]
if filetype == 'py':
print 'use python mode'
file.writelines('# -*- coding:utf-8 -*-')
file.write('/n')
file.writelines('# File: ' + sys.argv[1])
file.write('/n')
file.write(py)
file.write('# Date: ' + date)
file.write('/n')
file.write('#-----------------------------------------------------')
elif filetype == 'c' or filetype == 'cpp':
print 'use c mode'
file.writelines(' /n')
else:
print 'just create %s' % sys.argv[1]
file.close()??????? # 關閉文件

寫好的腳本可以放到Windows的系統目錄中,這樣就可以隨時運行,方便地在目錄中產生Python腳本或者C/C++文件。


五、運行其他程序
在Python中可以方便地使用os模塊運行其他的腳本或者程序,這樣就可以在腳本中直接使用其他腳本,或者程序提供的功能,而不必再次編寫實現該功能的代碼。
使用os.system函數運行其他程序
os模塊中的system()函數可以方便地運行其他程序或者腳本。其函數原型如下所示。
os.system(command)????? command :要執行的命令,相當于在Windows的cmd窗口中輸入的命令。如果要向程序或者腳本傳遞參數,可以使用空格分隔程序及多個參數。

以下實例實現通過os.system()函數打開系統的記事本程序。

>>> import os
# 使用os.system()函數打開記事本程序
>>> os.system('notepad')
0 # 關閉記事本后的返回值
# 向記事本傳遞參數,打開python.txt文件
>>> os.system('notepad python.txt')

轉載于:https://www.cnblogs.com/keepfocus/archive/2012/07/14/2591606.html

總結

以上是生活随笔為你收集整理的python对操作系统的目录和文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。