您的位置:

python复制文件夹,python复制文件夹到另一个文件夹

本文目录一览:

Python的shutil模块中文件的复制操作

shutil.copyfile(src, dst):将名为src的文件的内容复制到名为dst的文件中 。

src, dst是文件名

shutil.copy(source, destination)

shutil.copy() 函数实现文件复制功能,将 source 文件复制到 destination 文件夹中,两个参数都是字符串格式。如果 destination 是一个文件名称,那么它会被用来当作复制后的文件名称,即等于 复制 + 重命名。

source一定是文件名,destination可以是文件名也可以是文件夹名

举例如下:

shutil 模块

R、python的文件夹操作

Python OS模块

1.重命名:os.rename(old, new)

2.删除:os.remove(file)

3.列出目录下的 文件 :os.listdir(path)

4.获取当前工作目录:os.getcwd()

5.改变工作目录:os.chdir(newdir)

6.创建多级目录:os.makedirs(r"c:/python /test")

7.创建单个目录:os.mkdir("test")

8.删除多个目录:os.removedirs(r"c:/python") #删除所给路径最后一个目录下所有空目录。

9.删除单个目录:os.rmdir("test")

10.获取文件属性:os.stat(file)

11.修改文件权限与时间戳:os.chmod(file)

12.执行操作系统 命令:os.system("dir")

13.启动新进程:os.exec(), os.execvp()

14.在后台执行程序:osspawnv()

15.终止当前进程:os.exit(), os._exit()

16.分离文件名:os.path.split(r"c:/python/ hello.py ") – ("c://python", " hello.py ")

17.分离扩展名:os.path.splitext(r"c:/python/ hello.py ") – ("c://python//hello", ".py")

18.获取路径名:os.path.dirname(r"c:/python/ hello.py ") – "c://python"

19.获取文件名:os.path.basename(r"r:/python/hello.py") – "hello.py"

20.判断文件是否存在:os.path.exists(r"c:/python/hello.py") – True

21.判断是否是绝对路径:os.path.isabs(r"./python/") – False

22.判断是否是目录:os.path.isdir(r"c:/python") – True

23.判断是否是文件:os.path.isfile(r"c:/python/hello.py") – True

24.判断是否是链接文件:os.path.islink(r"c:/python/hello.py") – False

25.获取文件大小:os.path.getsize(filename)

26.*******:os.ismount("c://") – True

27.搜索目录下的所有文件:os.path.walk()

[2.shutil]

1.复制单个文件:shultil.copy(oldfile, newfle)

2.复制整个目录树:shultil.copytree(r"./setup", r"./backup")

3.删除整个目录树:shultil.rmtree(r"./backup")

[3.tempfile]

1.创建一个唯一的临时文件:tempfile.mktemp() – filename

2.打开临时文件:tempfile.TemporaryFile()

[4.StringIO] #cStringIO是StringIO模块的快速实现模块

1.创建内存 文件并写入初始数据 :f = StringIO.StringIO("Hello world!")

2.读入内存文件数据:print f.read() #或print f.getvalue() – Hello world!

3.想内存文件写入数据:f.write("Good day!")

4.关闭内存文件:f.close()

rm(list=ls())

path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'

setwd(path)

cat("file A\n", file="A") #创建一个文件A,文件内容是'file A','\n'表示换行,这是一个很好的习惯

cat("file B\n", file="B") #创建一个文件B

file.append("A", "B") #将文件B的内容附到A内容的后面,注意没有空行

file.create("A") #创建一个文件A, 注意会覆盖原来的文件

file.append("A", rep("B", 10)) #将文件B的内容复制10便,并先后附到文件A内容后

file.show("A") #新开工作窗口显示文件A的内容

file.copy("A", "C") #复制文件A保存为C文件,同一个文件夹

dir.create("tmp") #创建名为tmp的文件夹

file.copy(c("A", "B"), "tmp") #将文件夹拷贝到tmp文件夹中

list.files("tmp") #查看文件夹tmp中的文件名

unlink("tmp", recursive=F) #如果文件夹tmp为空,删除文件夹tmp

unlink("tmp", recursive=TRUE) #删除文件夹tmp,如果其中有文件一并删除

file.remove("A", "B", "C") #移除三个文件

python 怎么将输入目录内的文件拷贝至另一个目录的同名文件夹?

这是最近写的一个类似代码,你拿去改改

import shutil

import os

import logging

import sys

logger = logging.getLogger(__name__)

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)

def cp_or_mv2(src_file, des_dir, is_copy):

print(src_file, des_dir)

if os.path.isfile(src_file):

logger.info(f'from file {src_file}')

if is_copy:

shutil.copy2(src_file, des_dir)

logger.info(f'copy to {des_dir}')

else:

des_file = os.path.join(des_dir, src_file)

shutil.move(src_file, des_file)

logger.info(f'move to {des_file}')

else:

logger.info(f'from dir {src_file}')

des_dir_level1 = os.path.join(des_dir, src_file)

shutil.copytree(src_file, des_dir_level1, dirs_exist_ok=True)

logger.info(f'to {des_dir_level1}')

if not is_copy:

shutil.rmtree(src_file)

logger.info(f'deleted {src_file}')

def process_files_in_txt(txt_file, src_dir, des_dir, is_copy=True):

os.chdir(src_dir)

with open(txt_file, 'r', encoding='utf8', errors='ignore') as f:

for line in f.readlines():

src_file = line.strip()

# logger.info(src_file)

if os.path.exists(src_file):

cp_or_mv2(src_file, des_dir, is_copy)

else:

logger.warning(f'{src_file} missing!')

if __name__ == '__main__':

process_files_in_txt(r"D:\D\需要拷贝.txt", # 哪些文件(夹)

r"D:\D\Desktop", # 从哪个文件夹

r"D:\D\新建文件夹", # 到哪个文件夹

is_copy=False) # True复制,False剪切

用python如何将文件夹内部分指定文件名的文件复制到目标文件夹,大佬求教!

import glob

import shutil

def copy_file(names,old_name,new_name):

for name in names:

filename = name.split("\\")[-1]

#filename:从路径中截取文件名

shutil.copyfile(old_name + filename, new_name + filename)

files = glob.glob(r'D:/A/1*.txt')

#files : 搜索得到的符合条件(带有1开头的txt)的文件列表

old_path = r'D:/A/'

new_path = r'D:/B/'

copy_file(files,old_path,new_path)