python的
os模組封裝了作業系統的目錄和檔案操作,要注意這些函式有的在os
模組中,有的在os.path
模組中。
1. 利用os
模組編寫乙個能實現dir -l
輸出的程式。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import time
import re
dirpath=r'd:\exercises\python'
listfile(dirpath)
findfile(dirpath,'.py')
def listfile(path):
print('許可權\t檔案數\t使用者名稱\t群組名\t大小\t月份\t日期\t時間\t檔名')
for x in os.listdir(path):
dir=os.path.join(path,x)
st=os.stat(dir)
print(oct(st.st_mode)[-3:],end='\t')
print(numoffiles(dir),end='\t')
print(st.st_uid,end='\t')
print(st.st_gid,end='\t')
print(st.st_size,end='\t')
lc_time=time.localtime(st.st_mtime)
print(time.strftime('%b',lc_time),end='\t')
print(lc_time.tm_mday,end='\t')
print(time.strftime('%h:%m',lc_time),end='\t')
print(x)
#計算資料夾數,最小為1
def numoffiles(path,num=1):
try:
for x in os.listdir(path):
dir=os.path.join(path,x)
if os.path.isdir(dir):
num+=1
num=numoffiles(dir,num)
except baseexception as e:
pass
finally:
return num
2. 編寫乙個程式,能在當前目錄以及當前目錄的所有子目錄下查詢檔案名包含指定字串的檔案,並列印出相對路徑。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
keyword = input('input keyword: ')
up = '.'
result =
def check(up, keyword):
all = os.listdir(up)
for x in all:
try:
abs_x = os.path.join(up, x)
if os.path.isdir(abs_x):
up = os.path.join(up, x)
check(up, keyword)
up = os.path.split(up)[0]
if os.path.isfile(abs_x):
if keyword in x:
except:
continue
check(up, keyword)
print('\n**********find %d files**********\n' % len(result))
num = 0
for r in result:
num += 1
print('%d %s' % (num, r))
print('\n***************end***************\n')
os.system("pause")
python os模組練習題
1 獲取某個檔案所在目錄的上一級目錄。例如 d python projects test19.py 目錄的結果 d python projects 方法1 path os.path.dirname r d python projects test19.py base name os.path.dir...
Python datetime模組練習題
import datetime print today 2020年第天,今年 的時間已過去,我要好好努力學習!year days 365 today datetime.datetime.now date str 年月日 format year today.year,month today.month...
python書中練習題 python練習題
1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...