get_all_file_by_type() :根據接收到的path 和type,獲得該path下所有以type型別結尾的檔案
get_all_file_by_string(): 根據接收到的path 和 list, 獲得該path下所有的,包含list 裡字串的檔案
copy_file_by_type(): 根據接收到的old_path,和type,呼叫get_all_file_by_type()方法。根據條件選擇不同的執行**
copy_file_by_string():同理,不過它呼叫的是get_all_file_by_string()方法
1、複製檔案的完整路徑
import os
import shutil
defget_all_file_by_type
(path,
type=(
)):# 獲得以type型別結尾的所有檔案,返回乙個list
filelist =
for a, b, c in os.walk(path)
:for name in c:
fname = os.path.join(a, name)
if fname.endswith(
type):
return filelist
defget_all_file_by_string
(path, string_list)
: filelist =
for a, b, c in os.walk(path)
:for name in c:
fname = os.path.join(a, name)
for string in string_list:
if string in fname:
# 如果只想要檔名符合條件,把fname換成name即可
break
return filelist
defcopy_file_by_type
(old_path, new_path,
type=(
'doc'
,'docx'
), requird_dir=
false):
try:
file_list = get_all_file_by_type(old_path,
type
=type
)# 獲得該路徑下所有的type型別檔案
ifnot os.path.exists(new_path)
:# 建立新的資料夾
os.makedirs(new_path)
ifnot requird_dir:
# 如果僅複製檔案
forfile
in file_list:
name =
file
.split(
"\\")[
-1]# 獲得檔案名字
new_paths = os.path.join(new_path, name)
# 與新路徑拼接,獲得完整的新路徑
shutil.copy(
file
, new_paths)
print
(new_paths +
"成功"
)if requird_dir:
forfile
in file_list:
name =
file
.split(
"\\")[
-1]# 獲得檔案名字
new_paths =
file
.replace(old_path, new_path)
# 將乙個完整路徑中,開始的路徑替換成新的路徑
dir= new_paths.split(name)[0
]# 獲得資料夾路徑
ifnot os.path.exists(
dir)
:# 建立新資料夾
os.makedirs(
dir)
shutil.copy(
file
, new_paths)
print
(new_paths +
"成功"
)except exception as e:
print
(e)def
copy_file_by_string
(old_path, new_path, string_list, requird_dir=
false):
try:
file_list = get_all_file_by_string(old_path, string_list=string_list)
# 與上述一樣,只不過這裡呼叫的是get_all_file_by_string方法
ifnot os.path.exists(new_path)
: os.makedirs(new_path)
ifnot requird_dir:
forfile
in file_list:
name =
file
.split(
"\\")[
-1] new_paths = os.path.join(new_path, name)
shutil.copy(
file
, new_paths)
print
(new_paths +
"成功"
)if requird_dir:
forfile
in file_list:
name =
file
.split(
"\\")[
-1] new_paths =
file
.replace(old_path, new_path)
print
(new_paths)
dir= new_paths.split(name)[0
]ifnot os.path.exists(
dir)
: os.makedirs(
dir)
shutil.copy(
file
, new_paths)
print
(new_paths +
"成功"
)except exception as e:
print
(e)if __name__ ==
'__main__'
: old_path = r"f:\aaaa"
new_path = r"f:\bbbb"
list=[
"面試"
,"筆試"
,"題庫"
,"題目"
] copy_file_by_string(old_path=old_path, new_path=new_path, string_list=
list
, requird_dir=
false
)# type = ('docx','doc',"pdf","md")
# copy_file_by_type(old_path=old_path, new_path=new_path, type=type, requird_dir=true)
Python列舉指定資料夾下的特定檔案
方案 1 利用 glob 模組 import glob import os dst path c ext name txt os.chdir dst path for file in glob.glob ext name pass 方案 2 利用 os.listdir import os dst p...
查詢指定資料夾下的檔案
include include using namespace std finddata t結構體 struct finddata t void main attrib為檔案屬性,由以下字元代表 fa rdonly 唯讀檔案 fa label 卷標號 fa hidden 隱藏檔案 fa direc ...
Python Python讀取資料夾下的所有檔案
os.listdir path 是得到在path路徑下所以檔案的名稱列表。open path 是開啟某個檔案。iter是python的迭代器。所以讀取某資料夾下的所有檔案如下 import os path d python34 news 資料夾目錄 files os.listdir path 得到資...