5.07—018—周二

今日所學內容

    一、模塊

    二、遞歸刪除的思路

    三、案例:跨文件夾移動文件

    四、案例 遞歸遍歷打印目標路徑中所有的txt文件

    五、項目開放周期

一、模塊

1、與時間相關的模塊

  1)time :時間

  時間戳(timestamp):time.time()
  延遲線程的運行:time.sleep(secs)
    (指定時間戳下的)當前時區時間:time.localtime([secs])
    (指定時間戳下的)格林威治時間:time.gmtime([secs])
    (指定時間元組下的)格式化時間:time.strftime(fmt[,tupletime])

    %y 兩位數的年份表示(00-99)    %Y 四位數的年份表示(000-9999)
    %m 月份(01-12)          %d 月內中的一天(0-31)
    %H 24小時制小時數(0-23)     %I 12小時制小時數(01-12)
    %M 分鐘數(00=59)         %S 秒(00-59)
    %a 本地簡化星期名稱        %A 本地完整星期名稱
    %b 本地簡化的月份名稱       %B 本地完整的月份名稱
    %c 本地相應的日期表示和時間表示  %j 年內的一天(001-366)
    %p 本地A.M.或P.M.的等價符     %U 一年中的星期數(00-53)星期天為星期的開始
    %w 星期(0-6),星期天為星期的開始
    %W 一年中的星期數(00-53)星期一為星期的開始
    %x 本地相應的日期表示       %X 本地相應的時間表示
    %Z 當前時區的名稱         %% %號本身

  2)canendar : 日歷

    判斷閏年:calendar.isleap(year)

    查看某年某月日歷:calendar.month(year, mouth)

    查看某年某月起始星期與當月天數:calendar.monthrange(year, mouth)

    查看某年某月某日是星期幾:calendar.weekday(year, month, day)

  3)datatime : 可以運算的時間

    當前時間:datetime.datetime.now()

    昨天:datetime.datetime.now() + datetime.timedelta(days=-1)

    修改時間:datatime_obj.replace([...])

    格式化時間戳:datetime.date.fromtimestamp(timestamp)

2、sys : 系統

  命令行參數List,第一個元素是程序本身路徑:sys.argv

  退出程序,exit(0):正常退出時 sys.exit(n)

       exit(1): 非正常退出

       404 : 路徑有問題

  獲取Python解釋程序的版本信息:sys.version

  最大int值:sys.maxsize | sys.maxint

  環境變量:sys.path

  操作系統平臺名稱:sys.platform

3、OS : 操作系統

  生成單級目錄:  os.mkdir('dirname')
  生成多層目錄:  os.makedirs('dirname1/.../dirnamen2')
  重命名:  os.rename("oldname","newname")
  工作目錄:  os.getcwd()
  刪除單層空目錄:  os.rmdir('dirname')
  移除多層空目錄:  os.removedirs('dirname1/.../dirnamen')
  列舉目錄下所有資源:  os.listdir('dirname')
  路徑分隔符:  os.sep
  行終止符:  os.linesep
  文件分隔符:  os.pathsep
  操作系統名:  os.name
  操作系統環境變量:  os.environ
  執行shell腳本:  os.system()

4、os.path(ntpath) : 系統路徑操作

  執行文件的當前路徑:  __file__
  返回path規范化的絕對路徑:  os.path.abspath(path) ?
  將path分割成目錄和文件名二元組返回:  os.path.split(path)? 把目錄最后一個拆開返回
  獲取上一級目錄:  os.path.dirname(path)
  最后一級名稱:  os.path.basename(path)
  指定路徑是否存在:  os.path.exists(path)
  是否是絕對路徑:  os.path.isabs(path)
  是否是文件:  os.path.isfile(path)
  是否是路徑:  os.path.isdir(path)
  路徑拼接:  os.path.join(path1[, path2[, ...]])

  最后存取時間:  os.path.getatime(path)
  最后修改時間:  os.path.getmtime(path)
  目標大小:  os.path.getsize(path)

normcase函數
  在Linux和Mac平臺上,該函數會原樣返回path,

  在windows平臺上會將路徑中所有大寫字符轉換為小寫,并將所有斜杠轉換為反斜杠。

    >>> os.path.normcase('c:/windows\\system32\\')??

      'c:\\windows\\system32\\'

normpath函數
  規范化路徑,如 .. 和 /

    >>> os.path.normpath('c://windows\\System32\\../Temp/')??

      'c:\\windows\\Temp'? 不轉換大小寫會轉換 /?? 但是 .. 會消除它前一個路徑

    >>> a='/Users/jieli/test1/\\\a1/\\\\aa.py/../..'
    >>> print(os.path.normpath(a))
     /Users/jieli/test1

5、random

(0, 1):random.random(n)    # 0~1 以內的 n 個小數,不包括0和1

random.randint(1, 10)    [1, 10] 整數

random.randrange(1, 10)     [1, 10)/[1, 9] 整數

random.uniform(1, 10)    (1, 10) 內的小數

單例集合隨機選擇1個:random.choice(item)
單例集合隨機選擇n個:random.sample(item, n)
洗牌/打亂 單列集合:random.shuffle(item)

?

二、遞歸刪除的思路

?

def delete_dir(folder):
??? for path in os.listdir(folder):
??????? # 如果path是文件夾 delete_dir(path)
??????? # 如果是文件os.remove(path)
??????? pass
??? # for走完了代表folder內部刪空了,可以刪folder

?

三、案例:跨文件夾移動文件

import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR)

def move_file(file, folder):
??? if not (os.path.exists(file) and os.path.isfile(file)):
??????? print('文件不存在或非法')
??????? return False
??? if not os.path.exists(folder):
??????? os.makedirs(folder)
??? file_name = os.path.split(file)[1]
??? # file_name = os.path.basename(file)
??? new_file = os.path.join(folder, file_name)

??? with open(file, 'rb') as rf, open(new_file, 'wb') as wf:
??????? for line in rf:
??????????? wf.write(line)
??? os.remove(file)
# 將目標文件夾下的目標文件移動到指定文件夾下
file = os.path.join(BASE_DIR, 'part5', 'mm.py')
folder = os.path.join(BASE_DIR, 'part6', 'abc')
move_file(file, folder)

四、案例 遞歸遍歷打印目標路徑中所有的txt文件

import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR)

def print_txt(folder):
??? if not os.path.exists(folder) or os.path.isfile(folder):
??????? return
??? for path in os.listdir(folder):
??????? file_path = os.path.join(folder, path)
??????? if os.path.isfile(file_path) and file_path.endswith('.txt'):
??????????? print(path)
??????? elif os.path.isdir(file_path):
??????????? print_txt(file_path)?       # 遞歸


target_path = os.path.join(BASE_DIR, 'part6', 'target')
print_txt(target_path)

五、項目開放周期


1.調研
2.需求分析
3.架構師完成項目demo,完成項目架構
4.分工
5.寫代碼
6.白盒黑盒測試
7.項目審核發布 => 項目 -> 產品

bin: 可執行文件,入口,入口也可以放在項目根目錄下
core: 核心代碼
db:數據庫相關文件
interface:接口
lib:包、模塊、第三方文件夾
log:日志
setting:配置
static:靜態文件

?

轉載于:https://www.cnblogs.com/Chinesehan/p/10827436.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386856.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386856.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386856.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習模型中step與epoch,batch_size之間的關系

本文主要談談自己對step,epoch,batch_size這幾個常見參數的理解。 最近在調試模型的時候,發現在使用keras.optimizer.adam時,模型在添加了新的一層2D卷積層后難以收斂,在不調整初始權重矩陣的情況下,想通過…

yml的mybatis的sql查看

yml的mybatis的sql查看 控制臺輸出結果:

Debian 安裝 yum

sudo apt-get updatesudo apt-get install build-essentialsudo apt-get install yum轉載于:https://www.cnblogs.com/baiqian/p/10840169.html

unity如何讓canvas總是顯示在所有層的最上方?

由于unity中的圖層都是從上至下渲染的,那么在渲染的過程中,只需要將canvas所在的UI層的渲染優先級order排在其他層之后,就可以保證UI畫面總是最后加載出來的了。 在canvas的inspector中修改order in layer 或者 sorting layer都可以實現這一…

FZU - 2037 -Maximum Value Problem(規律題)

Let’s start with a very classical problem. Given an array a[1…n] of positive numbers, if the value of each element in the array is distinct, how to find the maximum element in this array? You may write down the following pseudo code to solve this proble…

解決Feign接口調用有時候不好用的分析思路

很多架構師為了鑒權,會把controller帶過來的header信息一股腦的利用feign的攔截器帶入RequestTemplate,然后方便feign接口鑒權。這時候可能會帶入其他的header信息,比如content-type,而有的feign接口是對特定對header信息有要求的…

關于同時可用git命令clone和TortoiseGit拉取代碼不需要密碼

工作需要在windows7下使用git分布式版本控制系統,需要同時可以在git命令行模式或TortoiseGit拉取代碼而不需要每次輸入密碼。 這時候需要同時安裝git和TortoiseGit。 git使用命令ssh-keygen -C “郵箱地址” -t rsa產生的密鑰在TortoiseGit中不能用。TortoiseGit 使…

交叉驗證 cross validation 與 K-fold Cross Validation K折疊驗證

交叉驗證,cross validation是機器學習中非常常見的驗證模型魯棒性的方法。其最主要原理是將數據集的一部分分離出來作為驗證集,剩余的用于模型的訓練,稱為訓練集。模型通過訓練集來最優化其內部參數權重,再在驗證集上檢驗其表現。…

這個太有意思了,程序員可以消遣娛樂

/***        ┏┓ ┏┓ *       ┏┛┻━━━━━━━┛┻┓ *       ┃       ┃*       ┃   ━   ┃ *       █████━█████ ┃*       ┃       ┃ *       ┃   ┻   ┃* …

第十一周總結

這個作業屬于那個課程 C語言程序設計II 這個作業要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/3203 我在這個課程的目標是 理解與使用遞歸函數。 參考文獻 基礎題 2-1 宏定義“#define DIV(a, b) a/b”,經DIV(x …

softmax函數與交叉熵損失函數

本文主要介紹了當前機器學習模型中廣泛應用的交叉熵損失函數與softmax激勵函數。 這個損失函數主要應用于多分類問題,用于衡量預測值與實際值之間的相似程度。 交叉熵損失函數定義如下: LCE(y^,y?)?∑i1Nclassesyi?log(yi^)L_{CE}(\hat{y}, y^*) - \sum_{i1}^…

vue配置git的子模塊

在vue的模塊需要調用許多公共組件,在公共組件之后會需要不斷的更新以及分組做,這時候可以利用git的方式更新組件所在位置 [submodule "src/component/common"] path src/component/common urlgit111.111.111.111:projectname/web-common-…

unity如何讓物體與特定物體之間不發生碰撞

unity中我們普遍使用的是碰撞器來實現各個物體的碰撞體積,例如Box collider, Sphere Collider。 在實現游戲的過程中,如果不想要物體與特定物體產生碰撞,或反之,只想讓碰撞發生在特定物體之間時,我們就需要配置layer …

jenkins的JAVA簡單順序配置git倉庫

后臺Java的發布配置 1、從源碼管理下載項目內容 2、構建觸發器 3 、構建下環境 4、構建后處理

SQLyog連接數據庫報錯plugin caching_sha2_password could not be loaded

打開cmd:mysql -uroot -p 進入mysql依次執行下面語句 ALTER USER rootlocalhost IDENTIFIED BY password PASSWORD EXPIRE NEVER; #修改加密規則 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY password; #更新一下用戶的密碼 FLUSH PRIVI…

unity導入素材時材質丟失素材變成粉紅色的解決方法

有很多時候,當我們通過unity asset store或者blender等等外源導入素材時,會出現材質缺失的bug,如下圖所示 : 一個很可能的原因,是由于unity本身管線在每個版本的更新過程中,材質的渲染編碼發生了改變。由于這種原因引…

Jenkins 部署vue到服務器

鏈接github名稱 2、從源碼管理下載 3、更新最新前端模塊 4、進行構建和打包

unity用coroutine并發實現暫停執行程序

廢話不多說,下面就用一個簡單的顯示指引案件的例子來展示如何用coroutine來暫停程序的執行 using System.Collections; using System.Collections.Generic; using UnityEngine;public class TextTriggered : MonoBehaviour {public GameObject TextObject;// Start…

P2690 接蘋果

———————————————————————— 我用了記憶化,因為它比DP更好理解 ————————————————————————— 資料:百度百科( MIKU,I Love HER ) 來自洛谷:(背包的題解&am…

gitlab使用git sourcetree時候的命令

6. Git連接設置 MacOS 打開MacOS的 terminal.app 工具。 輸入 cat ~/.ssh/id_rsa.pub 確認是否有已經存在的證書。 如果提示存在證書,請跳至 第5步。 輸入 ssh-keygen -t rsa -C "your.mobile136.com" -b 4096,并回車,提示的輸入…