SQL Server 2008 究竟須要應用哪些端口?。本站提示廣大學習愛好者:(SQL Server 2008 究竟須要應用哪些端口?)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server 2008 究竟須要應用哪些端口?正文
引言
有個須要,須要把某個目次下的目次構造停止復制,不要文件,當目次構造很少的時刻可以手工去樹立,當目次構造龐雜,目次條理很深,目次許多的時刻,這個時刻如果照樣手動去樹立的話,其實不是一種好的辦法,弄欠好會逝世人的。寫一個python劇本來處置吧。
起首懂得
寫python劇本前,先懂得幾個器械
#!/usr/bin/python
這個器械寫過劇本的人都曉得,用來標明該劇本的履行器,相似的還有
#!/bin/bash 經由過程bash來履行
#!/usr/local/php/bin/php 經由過程php履行器來履行
# -*- coding: utf-8 -*-
這個是設置劇本的編碼格局,否則非英文能夠會湧現亂碼
匿名函數lambda
#lambda很好用,創立匿名函數很便利
g = lambda x,y : x+y
g(3,5) #前往8
匿名函數分為四部門,標識 lambda,分號 :,參數 x,y,操作 x+y
除這個以外,還有函數map、filter一個停止映照,一個停止過濾
__name__=="__main__"
一個文件就是一個模塊,在python中每一個模塊都有一個__name__屬性,屬性的值取決於若何應用該模塊,普通有兩種應用方法,直接在敕令交運行,這個時刻__name__值為__main__,當import應用的時刻,__name__值就是以後模塊的稱號(不帶擴大名),是以可以經由過程這個斷定能否是直接在敕令交運行法式,以便做一些劇本應用。
import os
import sys
還有這兩個模塊,os包括一些操作體系功效,好比說遍歷文件夾,拼接途徑等等,sys模塊包括體系函數,我這裡只用來獲得劇本前面的參數
編碼
#!/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("源文件夾不存在")
應用
應用很簡略:
#在以後文件夾下履行
./folders.py ./ /tmp/yyyyy
#履行完以後就會在/tmp下創立yyyyy目次,目次中包括下面的第一個文件夾中的目次構造
這個處所有兩個要留意的處所,不克不及將創立後的目次放在要復制的目次中或許其子目次中
總結
在做這個的時刻碰到了這個成績 /usr/bin/python^M: bad interpreter: No such file or directory ,這個成績看模樣是編碼的成績,在每行前面添加了個字符,查材料後,本來是因為我從windows下直接把法式復制到linux下的編碼湧現了成績,處理辦法很簡略:vi folders.py以後,在敕令行下輸出
:set ff #成果表現編碼平台,應當是fileformat=dos
:set fileformat=unix #設置編碼到unix平台
:set ff #這個時刻再去檢查文件編碼,應當是fileformat=unix