Python 将文件复制到具有其他名称的同一目录
我需要用另一个名称复制同一目录中的所有html文件,并且需要导航源目录中的所有目录 这是我到目前为止的代码Python 将文件复制到具有其他名称的同一目录,python,path,directory,shutil,Python,Path,Directory,Shutil,我需要用另一个名称复制同一目录中的所有html文件,并且需要导航源目录中的所有目录 这是我到目前为止的代码 import os import shutil os.chdir('/') dir_src = ("/home/winpc/test/copy/") for filename in os.listdir(dir_src): if filename.endswith('.html'): shutil.copy( dir_src + filename, dir_s
import os
import shutil
os.chdir('/')
dir_src = ("/home/winpc/test/copy/")
for filename in os.listdir(dir_src):
if filename.endswith('.html'):
shutil.copy( dir_src + filename, dir_src)
print(filename)
解决方案
解释
导航源文件夹(包括子文件夹)中的所有文件
复制到具有新名称的同一文件夹
参考文献
签出我的另一个问题 那么基本上重命名每个文件
os.rename
和glob
可能有帮助实际上我不需要重命名。我需要保持原始文件的原样。我需要用另一个名称将副本复制到同一文件夹为什么不发出shell命令?find
和copy
函数都有递归开关,可以缓解问题。我发现shutil
非常有用。
import os
import shutil
def navigate_and_rename(src):
for item in os.listdir(src):
s = os.path.join(src, item)
if os.path.isdir(s):
navigate_and_rename(s)
else if s.endswith(".html"):
shutil.copy(s, os.path.join(src, "newname.html"))
dir_src = "/home/winpc/test/copy/"
navigate_and_rename(dir_src)
import os
def navigate(src):
for item in os.listdir(src):
s = os.path.join(src, item)
if os.path.isdir(s):
navigate(s)
else:
# Do whatever to the file
import shutil
shutil.copy(src_file, dst_file)