亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python復(fù)制目錄結(jié)構(gòu)腳本代碼分享

系統(tǒng) 1865 0

引言

  有個需要,需要把某個目錄下的目錄結(jié)構(gòu)進行復(fù)制,不要文件,當目錄結(jié)構(gòu)很少的時候可以手工去建立,當目錄結(jié)構(gòu)復(fù)雜,目錄層次很深,目錄很多的時候,這個時候要是還是手動去建立的話,實在不是一種好的方法,弄不好會死人的。寫一個python腳本來處理吧。

首先了解

  寫python腳本前,先了解幾個東西

復(fù)制代碼 代碼如下:

#!/usr/bin/python

這個東西寫過腳本的人都知道,用來標明該腳本的執(zhí)行器,類似的還有
復(fù)制代碼 代碼如下:

#!/bin/bash?????? 通過bash來執(zhí)行
#!/usr/local/php/bin/php 通過php執(zhí)行器來執(zhí)行???
?

# -*- coding: utf-8 -*-


這個是設(shè)置腳本的編碼格式,不然非英文可能會出現(xiàn)亂碼

匿名函數(shù)lambda

復(fù)制代碼 代碼如下:

#lambda很好用,創(chuàng)建匿名函數(shù)很方便
g = lambda x,y : x+y
g(3,5) #返回8

匿名函數(shù)分為四部分,標識 lambda,分號 :,參數(shù) x,y,操作 x+y

除了這個之外,還有函數(shù)map、filter一個進行映射,一個進行過濾

復(fù)制代碼 代碼如下:

__name__=="__main__"

一個文件就是一個模塊,在python中每個模塊都有一個__name__屬性,屬性的值取決于如何使用該模塊,一般有兩種使用方式,直接在命令行運行,這個時候__name__值為__main__,當import使用的時候,__name__值就是當前模塊的名稱(不帶擴展名),因此可以通過這個判斷是否是直接在命令行運行程序,以便做一些腳本使用。
復(fù)制代碼 代碼如下:

import os
import sys

還有這兩個模塊,os包含一些操作系統(tǒng)功能,比如說遍歷文件夾,拼接路徑等等,sys模塊包含系統(tǒng)函數(shù),我這里只用來獲取腳本后面的參數(shù)

編碼

復(fù)制代碼 代碼如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Filename:floders.py

import os
import sys

source = os.path.realpath(sys.argv[1])
target = os.path.realpath(sys.argv[2])

def isdir(x):
??? return os.path.isdir(x) and x != '.svn'
def mkfloders(src,tar):
??? paths = os.listdir(src)
??? paths = map(lambda name:os.path.join(src,name),paths)
??? paths = filter(isdir, paths)
??? if(len(paths)<=0):
??????? return
??? for i in paths:
??????? (filepath, filename)=os.path.split(i)
??????? targetpath = os.path.join(tar,filename)
??????? not os.path.isdir(targetpath) and os.mkdir(targetpath)
??????? mkfloders(i,targetpath)

if __name__=="__main__":
??? if(os.path.isdir(source)):
??????? if(target.find(source) == 0):
??????????? print("不能將生成的新目錄放在源目錄下")
??????? else:
??????????? if not os.path.isdir(target):
??????????????? os.mkdir(target)
??????????? mkfloders(source,target)
??? else:
??????? print("源文件夾不存在")

使用

  使用很簡單:

復(fù)制代碼 代碼如下:

#在當前文件夾下執(zhí)行
./folders.py ./ /tmp/yyyyy

#執(zhí)行完之后就會在/tmp下創(chuàng)建yyyyy目錄,目錄中包含上面的第一個文件夾中的目錄結(jié)構(gòu)

這個地方有兩個要注意的地方,不能將創(chuàng)建后的目錄放在要復(fù)制的目錄中或者其子目錄中

總結(jié)

  在做這個的時候遇到了這個問題 /usr/bin/python^M: bad interpreter: No such file or directory ,這個問題看樣子是編碼的問題,在每行后面添加了個字符,查資料后,原來是由于我從windows下直接把程序復(fù)制到linux下的編碼出現(xiàn)了問題,解決方法很簡單:vi folders.py之后,在命令行下輸入

復(fù)制代碼 代碼如下:

:set ff #結(jié)果表示編碼平臺,應(yīng)該是fileformat=dos

:set fileformat=unix #設(shè)置編碼到unix平臺

:set ff #這個時候再去查看文件編碼,應(yīng)該是fileformat=unix


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品国产国语对白 | 色无极欧美 | 亚洲欧美日韩专区 | 亚洲成人网在线观看 | 欧美国产精品不卡在线观看 | 国产社区| 亚洲片在线 | 精品一区二区三区中文字幕 | 九色蝌蚪自拍 | 久久亚洲国产成人亚 | 国产精品日韩欧美在线第3页 | 亚洲欧洲一区二区三区久久 | 国内精品自在自线在免费 | 国产精品成| 日韩香蕉视频 | 牛牛影院免费永久地址 | 在线 | 一区二区三区四区 | 亚洲国产成人资源在线软件 | 成年女人视频网站免费m | 奇米影视首页 | 精品久久久久不卡无毒 | 成人黄色小视频 | 欧美一区二区久久精品 | 国产成人综合亚洲动漫在线 | 奇米狠狠色 | 国产美女激情 | 免费观看美女光子让男人玩 | 在线观看视频99 | 国产亚洲精品激情一区二区三区 | 亚洲综合激情六月婷婷在线观看 | 一区二区三区亚洲 | 成年女人毛片免费视频 | 日本欧美一区二区三区 | 欧美成人性色生活18黑人 | 天天射天天草 | 欧美xxx69╳xxhd | 国产日韩欧美成人 | 国产香蕉视频在线 | 欧美在线xxx | 女人精69xxxxx免费无毒 | 337p亚洲精品色噜噜狠狠 |