pythonos復制
❶ python os.walk怎麼循環
os.walk(top,topdown=True,onerror=None,followlinks=False)
可以得到一個三元tupple(dirpath,dirnames,filenames),
第一個為起始路徑,第二個為起始路徑下的文件夾,第三個是起始路徑下的文件。
dirpath是一個string,代表目錄的路徑,
dirnames是一個list,包含了dirpath下所有子目錄的名字。
filenames是一個list,包含了非目錄文件的名字。
這些名字不包含路徑信息,如果需要得到全路徑,需要使用os.path.join(dirpath,name).
通過for循環自動完成遞歸枚舉
例如:
F:aaa目錄是這樣的文件目錄結構
F:aaa
|--------1.txt
|--------2.txt
|--------3.txt
|--------4
|-------5.txt
|-------6.txt
|-------7.txt
[python]view plain
#!/usr/bin/envpython
#2.py
#useUTF-8
#Python3.3.0
#os.walk()的使用
importos
#枚舉dirPath目錄下的所有文件
defmain():
#begin
fileDir="F:"+os.sep+"aaa"#查找F:aaa目錄下
forroot,dirs,filesinos.walk(fileDir):
#begin
print(root)
print(dirs)
print(files)
#end
os.system("pause")
#end
if__name__=='__main__':
#begin
main()
#end
#輸出
#F:aaa
#['4']
#['1.txt','2.txt','3.txt']
#F:aaa4
#[]
#['5.txt','6.txt','7.txt']
- 你也可以這樣
#!/usr/bin/envpython
#3.py
#useUTF-8
#Python3.3.0
#os.walk()的使用
importos
#枚舉dirPath目錄下的所有文件
defmain():
#begin
fileDir="F:"+os.sep+"aaa"#查找F:aaa目錄下
forainos.walk(fileDir):
#begin
print(a[0])
print(a[1])
print(a[2])
#end
os.system("pause")
#end
if__name__=='__main__':
#begin
main()
#end
#輸出
#F:aaa
#['4']
#['1.txt','2.txt','3.txt']
#F:aaa4
#[]
#['5.txt','6.txt','7.txt']
- 通過for循環即可完成目錄的遞歸.
#!/usr/bin/envpython
#2.py
#useUTF-8
#Python3.3.0
#os.walk()的使用
importos
#枚舉dirPath目錄下的所有文件
defmain():
#begin
fileDir="F:"+os.sep+"aaa"#查找F:aaa目錄下
forroot,dirs,filesinos.walk(fileDir):
#begin
fordirindirs:
#begin
print(os.path.join(root,dir))
#end
forfileinfiles:
#begin
print(os.path.join(root,file))
#end
#end
os.system("pause")
#end
if__name__=='__main__':
#begin
main()
#end
#輸出
#F:aaa4
#F:aaa1.txt
#F:aaa2.txt
#F:aaa3.txt
#F:aaa45.txt
#F:aaa46.txt
#F:aaa47.txt
[python]view plain
你還可以這樣
[python]view plain
❷ python—os模塊批量修改文件名&復制文件
1、修改文件名
導入os模塊
這里舉的例子是:對目錄下的所有文件重命名,格式為一個字元串+6位遞增數
注意:其中zfill(6)的作用是將1變為6位數,缺少位置0代替,結果就是00001
2、復制文件
注意:還有其它復制方法,可以自行網路~!
3.格式化輸出
PS:覺得這篇文章有用的朋友,多多點贊打賞哦~!
❸ Python的os庫的使用
python os庫有很多和操作系統相關的功能。
其實不僅僅如此,os庫中還有很多和文件,路徑,執行系統命令相關的。
下面是os模塊常用的方法.
1.os.sep 可以取代操作系統特定的路徑分割符
2.os.name 字元串指示你正在使用的平台。比如對於Windows,它是'nt',而對於Linux/Unix用戶,它是'posix'
3.os.getcwd() 函數得到當前工作目錄,即當前Python腳本工作的目錄路徑
4.os.getenv() 用來讀取環境變數
5.os.putenv() 用來設置環境變數
6.os.listdir() 返回指定目錄下的所有文件和目錄名
7os.remove() 函數用來刪除一個文件
8.os.system() 函數用來運行shell命令
9.os.linesep 字元串給出當前平台使用的行終止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。
10.os.path.split() 函數返回一個路徑的目錄名和文件名
11.os.path.isfile() 檢驗給出的路徑是一個文件
12os.path.isdir() 檢驗給出的路徑是一個目錄
13.os.path.existe() 函數用來檢驗給出的路徑是否真地存在
14.os.listdir(dirname) 列出dirname下的目錄和文件
15.os.getcwd() 獲得當前工作目錄
16.os.curdir 返回當前目錄('.')
17.os.chdir(dirname) 改變工作目錄到dirname
os.path都是和路徑指定的文件,目錄,和路徑字元串有關系的函數
os.path.isdir(name) 判斷name是不是一個目錄,name不是目錄就返回false
os.path.isfile(name) 判斷name是不是一個文件,不存在name也返回false
os.path.exists(name) 判斷是否存在文件或目錄name
os.path.getsize(name) 獲得文件大小,如果name是目錄返回0L
os.path.abspath(name) 獲得絕對路徑
os.path.normpath(path) 規范path字元串形式
os.path.split(name) 分割文件名與目錄(事實上,如果你完全使用目錄,它也會將最後一個目錄作為文件名而分離,同時它不會判斷文件或目錄是否存在)
os.path.splitext() 分離文件名與擴展名
os.path.join(path,name) 連接目錄與文件名或目錄
os.path.basename(path) 返迴文件名
os.path.dirname(path) 返迴文件路徑
❹ python中怎樣轉到指定目錄
例如使用IDLE編譯python代碼時,可以使用os.chdir轉到指定目錄
import os.
os.getcwd() #get current work direction.
os.chdir('E:\Python_File\Test') #change direction.
在這之後可以直接調用』E:Python_FileTest』目錄下的函數。
或者用庫調用:
import osimport shutil.
alllist=os.listdir(u"D:\notes\python\資料\")for i in alllist:
aa,bb=i.split(".") if 'python' in aa.lower():
oldname= u"D:\notes\python\資料\"+aa+"."+bb.
newname=u"d:\\newname"+aa+"."+bb.
shutil.file(oldname,newname).

(4)pythonos復制擴展閱讀:
Python中獲得當前目錄和上級目錄:
獲取當前文件的路徑:
from os import path
d = path.dirname(__file__) #返回當前文件所在的目錄 # __file__ 為當前文件, 若果在ide中運行此行會報錯,可改為 #d = path.dirname('.')。
獲得某個路徑的父級目錄:
parent_path = os.path.dirname(d) #獲得d所在的目錄,即d的父級目錄 parent_path = os.path.dirname(parent_path) ##獲得parent_path所在的目錄即parent_path的父級目錄。
獲得規范的絕對路徑:
abspath = path.abspath(d) #返回d所在目錄規范的絕對路徑。
❺ 用python把文件夾下的所有文件包括文件夾裡面的文件都拷貝到同一個目錄下
importos
importshutil
defwenjian(path):
ifos.path.isfile(path):
shutil.(path,'c:\new_dir')
ifos.path.isdir(path):
lists=os.listdir(path)
foriinlists:
wenjian(i)
foriinos.walk('c:\1'):
wenjian(i)
建議你把檢索到的文件都放到一個新的文件夾里,要不然系統在同一個文件夾里不停的讀取和寫入可能會陷入死循環以至出錯。
❻ 如何使用python復制大概200G的數據[任何語言只要能實現]
如果我理解的正確的話,樓主是要大文件吧。
python最經常使用的函數,應該是shutil.file()了,它默認以16384bytes 的大小作為緩沖區,對於小的文件,的確不錯。但是處理到大的文件的時候,性能下降就很嚴重。過小的buffer會不合適。
經過多次的嘗試,發現10Mb的buffer最合適,再高也沒有性能的提升。重載後的函數如下
defFile(src,dst,buffer_size=10485760,perserveFileDate=True):
'''
Copiesafiletoanewlocation.
@paramsrc:SourceFile
@paramdst:DestinationFile(notfilepath)
@parambuffer_size:Buffersizetousering
@paramperserveFileDate:Preservetheoriginalfiledate
'''
#.Ifitdoesn'tcreatethedirectory
dstParent,dstFileName=os.path.split(dst)
if(not(os.path.exists(dstParent))):
os.makedirs(dstParent)#
buffer_size=min(buffer_size,os.path.getsize(src))
if(buffer_size==0):
buffer_size=1024ifshutil._samefile(src,dst):
raiseshutil.Error("`%s`and`%s`arethesamefile"%(src,dst))
forfnin[src,dst]:
try:
st=os.stat(fn)
exceptOSError:
#Filemostlikelydoesnotexist
pass
else:
#XXXWhataboutotherspecialfiles?(sockets,devices...)
ifshutil.stat.S_ISFIFO(st.st_mode):
raiseshutil.SpecialFileError("`%s`isanamedpipe"%fn)
withopen(src,'rb')asfsrc:
withopen(dst,'wb')asfdst:
shutil.fileobj(fsrc,fdst,buffer_size)if(perserveFileDate):
shutil.stat(src,dst)
使用的時候記得添加相應的包。
❼ python 復制文件的小問題,求高手解,請仔細看圖片啊
運行之前確保已經連上 8.8.9.127的共享。
import os
import os.path
from os.path import isfile, isdir, join
from shutil import
remote_dir = r'\\8.8.9.127\mal\decrpyt'
dest_dir = r'd:\\copied_files'
if not isdir(dest_dir):
os.makedirs(dest_dir)
for f in os.listdir(remote_dir):
if f.lower().endswith('.txt'):
f_path = join(remote_dir, f)
if isfile(f_path):
print 'ing %s...' % f_path
(f_path, dest_dir)
❽ python os 移動文件到指定目錄
使用python的os模塊移動文件到指定目錄,可以使用os模塊中的renames方法,可以生成目錄如果目錄不存在,例如,將當前目錄的文件「test.txt」移動到「data/test.txt「,使用2行代碼即可,如下:
import os;
os.renames("test.txt","data/test.txt");
❾ python 實現一級目錄下的所有文件與文件夾到指定目錄
'''
python3 實現
將a目錄下所有文件和文件夾到b目錄
'''
import os, shutil
#src 原始目錄, des 目標目錄
def sourcecpy(src, des):
src = os.path.normpath(src)
des = os.path.normpath(des)
if not os.path.exists(src) or not os.path.exists(src):
print("文件路徑不存在")
sys.exit(1)
#獲得原始目錄中所有的文件,並拼接每個文件的絕對路徑
os.chdir(src)
src_file = [os.path.join(src, file) for file in os.listdir()]
for source in src_file:
#若是文件
if os.path.isfile(source):
shutil.(source, des) #第一個參數是文件,第二個參數目錄
#若是目錄
if os.path.isdir(source):
p, src_name = os.path.split(source)
des = os.path.join(des, src_name)
shutil.tree(source, des) #第一個參數是目錄,第二個參數也是目錄
