十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
給Pyhton的列表尾部追加元素,通常會用到append()函數(shù),但是要注意append()函數(shù)使用的是淺拷貝。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)神池免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
舉個例子:
mylist = []
x = [1, 2, 3]
mylist.append(x)
給空列表mylist追加一個x,此時查看mylist,輸出為[[1, 2, 3]],即mylist擁有了一個元素,該元素正是x(列表[1, 2, 3])。
擴展資料
列表可包含任何數(shù)據(jù)類型的元素,單個列表中的元素無須全為同一類型。
append()?方法向列表的尾部添加一個新的元素。
列表是以類的形式實現(xiàn)的?!皠?chuàng)建”列表實際上是將一個類實例化。因此,列表有多種方法可以操作。extend()方法只接受一個列表作為參數(shù),并將該參數(shù)的每個元素都添加到原有的列表中。
內(nèi)置函數(shù)append用來將元素追加到slice的后面
參考資料來源:
百度百科——append 命令
用Python把某一目錄下的文件復制到指定目錄中,代碼如下:
1、首先插入必要的庫:
import?os?
import?os.path?
import?shutil?
import?time,??datetime
2、實現(xiàn)復制文件代碼如下:
def?copyFiles(sourceDir,targetDir):?
if?sourceDir.find(".svn")??0:?
return?
for?file?in?os.listdir(sourceDir):?
sourceFile?=?os.path.join(sourceDir,file)?
targetFile?=?os.path.join(targetDir,file)?
if?os.path.isfile(sourceFile):?
if?not?os.path.exists(targetDir):??
os.makedirs(targetDir)??
if?not?os.path.exists(targetFile)?or(os.path.exists(targetFile)?and?(os.path.getsize(targetFile)?!=?os.path.getsize(sourceFile))):??
open(targetFile,"wb").write(open(sourceFile,"rb").read())?
if?os.path.isdir(sourceFile):?
First_Directory?=?False?
copyFiles(sourceFile,?targetFile)
3、主函數(shù)的實現(xiàn):
if??__name__?=="__main__":?
print?"Start(S)?or?Quilt(Q)?\n"?
flag?=?True?
while?(flag):?
answer?=?raw_input()?
if??'Q'?==?answer:?
flag?=?False?
elif?'S'==?answer?:?
formatTime?=?getCurTime()?
targetFoldername?=?"Build?"?+?formatTime?+?"-01"?
Target_File_Path?+=?targetFoldername
copyFiles(Debug_File_Path,Target_File_Path)?
removeFileInFirstDir(Target_File_Path)?
coverFiles(Release_File_Path,Target_File_Path)?
moveFileto(Firebird_File_Path,Target_File_Path)?
moveFileto(AssistantGui_File_Path,Target_File_Path)?
writeVersionInfo(Target_File_Path+"\\ReadMe.txt")?
print?"all?sucess"?
else:?
print?"not?the?correct?command"
python作業(yè)能不能查是粘貼的。在python中用有一個模塊能用來處理剪切板復制的內(nèi)容,pyperclip模塊pyperclip模塊有copy和paste函數(shù),分別用于向計算機的剪貼板發(fā)送文本,或接受文本。pyperclip模塊不是python自帶的,要安裝這個模塊。
如果我理解的正確的話,樓主是要copy大文件吧。
python最經(jīng)常使用的copy函數(shù),應該是shutil.copyfile()了,它默認以16384bytes 的大小作為緩沖區(qū),對于小的文件,的確不錯。但是處理到大的文件的時候,性能下降就很嚴重。過小的buffer會不合適。
經(jīng)過多次的嘗試,發(fā)現(xiàn)10Mb的buffer最合適,再高也沒有性能的提升。重載后的copy函數(shù)如下
def?copyFile(src,?dst,?buffer_size=10485760,?perserveFileDate=True):
'''
Copies?a?file?to?a?new?location.?Much?faster?performance?than?Apache?Commons?due?to?use?of?larger?buffer
@param?src:????Source?File
@param?dst:????Destination?File?(not?file?path)
@param?buffer_size:????Buffer?size?to?use?during?copy
@param?perserveFileDate:????Preserve?the?original?file?date
'''
#????Check?to?make?sure?destination?directory?exists.?If?it?doesn't?create?the?directory
dstParent,?dstFileName?=?os.path.split(dst)
if(not(os.path.exists(dstParent))):
os.makedirs(dstParent)
#????Optimize?the?buffer?for?small?files
buffer_size?=?min(buffer_size,os.path.getsize(src))
if(buffer_size?==?0):
buffer_size?=?1024
if?shutil._samefile(src,?dst):
raise?shutil.Error("`%s`?and?`%s`?are?the?same?file"?%?(src,?dst))
for?fn?in?[src,?dst]:
try:
st?=?os.stat(fn)
except?OSError:
#?File?most?likely?does?not?exist
pass
else:
#?XXX?What?about?other?special?files??(sockets,?devices...)
if?shutil.stat.S_ISFIFO(st.st_mode):
raise?shutil.SpecialFileError("`%s`?is?a?named?pipe"?%?fn)
with?open(src,?'rb')?as?fsrc:
with?open(dst,?'wb')?as?fdst:
shutil.copyfileobj(fsrc,?fdst,?buffer_size)
if(perserveFileDate):
shutil.copystat(src,?dst)
使用的時候記得添加相應的包。
8個超好用內(nèi)置函數(shù)set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強大,用好了可以大大提高代碼效率。
這次來梳理下8個好用的python內(nèi)置函數(shù)
1、set()
當需要對一個列表進行去重操作的時候,set()函數(shù)就派上用場了。
用于創(chuàng)建一個集合,集合里的元素是無序且不重復的。集合對象創(chuàng)建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個四則運算器,輸入字符串公式,直接產(chǎn)生結(jié)果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉(zhuǎn)換成表達式,并且執(zhí)行。
3、sorted()在處理數(shù)據(jù)過程中,我們經(jīng)常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted() ,它可以對任何可迭代對象進行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長度來排序:
根據(jù)自定義規(guī)則,對元組構(gòu)成的列表進行排序:
4、reversed()如果需要對序列的元素進行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。reversed()接受一個序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。
5、map()做文本處理的時候,假如要對序列里的每個單詞進行大寫轉(zhuǎn)化操作。這個時候就可以使用map()函數(shù)。
map()會根據(jù)提供的函數(shù),對指定的序列做映射,最終返回迭代器。也就是說map()函數(shù)會把序列里的每一個元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個例子,對列表里的每個數(shù)字作平方處理:
6、reduce()前面說到對列表里的每個數(shù)字作平方處理,用map()函數(shù)。那我想將列表里的每個元素相乘,該怎么做呢?這時候用到reduce()函數(shù)。
reduce()會對參數(shù)序列中元素進行累積。第一、第二個元素先進行函數(shù)操作,生成的結(jié)果再和第三個元素進行函數(shù)操作,以此類推,最終生成所有元素累積運算的結(jié)果。再舉個例子,將字母連接成字符串。
你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。這里把reduce()函數(shù)拎出來講,是因為它太重要了。
7、filter()一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?
filter()函數(shù)輕松完成了任務,它用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象。filter()函數(shù)和map()、reduce()函數(shù)類似,都是將序列里的每個元素映射到函數(shù),最終返回結(jié)果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個場景,同時打印出序列里每一個元素和它對應的順序號,我們用enumerate()函數(shù)做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數(shù)用于對序列里的元素進行順序標注,返回(元素、索引)組成的迭代器。再舉個例子說明,對字符串進行標注,返回每個字母和其索引。
file類中沒有提供專門的文件復制函數(shù),因此只能通過使用文件的讀寫函數(shù)來實現(xiàn)文件的復制。這里僅僅給出范例:
src = file("myfile.txt", "w+")
temp = ["hello world! \n"]
src.writelines(temp)
src.close()
src = file("myfile.txt", "r+")
des = file("myfile2.txt", "w+")
des.writelines(src.read())
src.close()
des.close()
shutil模塊是另一個文件,目錄的管理接口,提供了一些用于復制文件,目錄的函數(shù)。copyfile()函數(shù)可以實現(xiàn)文件的拷貝,聲明如下:
copyfile(src, des)
文件的剪切可以使用move()函數(shù)模擬,聲明如下:
move(src,des)
功能:移動一個文件或者目錄到指定的位置,并且可以根據(jù)參數(shù)des重命名移動后的文件。