精华内容
下载资源
问答
  • Python 批量复制文件并解决Windows copy 报错 “系统找不到指定文件”创作背景我的需求我的思路问题再现代码展示结尾 创作背景 本菜鸡最近想写个 批量复制文件 的程序,复制的方法是利用 os.system 执行 copy 命令 ...

    Python 批量复制文件并解决Windows copy 报错 “系统找不到指定文件”

    创作背景

    • 本菜鸡最近想写个 批量复制文件 的程序,复制的方法是利用 os.system 执行 copy 命令
    • 但在使用 copy 命令的时候一直报错 “系统找不到指定文件”

    我的需求

    • 新目录下 创建 旧目录中 第一级子目录
    • 把旧目录中 所有指定后缀的文件复制 到新目录
    • 并以 该文件的父目录和文件名 重新命名 这个文件

    我的思路

    • 使用的库:os
    1. 首先,使用 os.walk() 递归遍历指定文件夹中所有的文件
    2. 利用 endswith() 判断是否为指定后缀的文件
    3. 使用 os.system() + copy 复制并修改文件名

    问题再现

    1. 第一步创建目录倒没出现什么问题,代码如下:
      import os
      def walk_dir(DIR_PATH, COPY_PATH):
      	
      	# 归一化路径的表示形式
          DIR_PATH = DIR_PATH.replace('/', '\\')
          COPY_PATH = COPY_PATH.replace('/', '\\')
      	
      	# 新目录下创建旧目录中第一级子目录
          for old in os.listdir(DIR_PATH):
          	new = os.path.join(COPY_PATH, old)
              if os.path.isdir(old) and not os.path.exists(new):
                  os.mkdir(new)
                  print(f'mkdir {new} successfully')
      
    2. 第二步是 遍历文件 ,并且 判断是否为指定后缀的文件 (以 pdf 为例),代码如下
      for root, dirs, files in os.walk(DIR_PATH):
          for f in files:
              if f.endswith('.pdf'):
                  pass
      
    3. 第三步 复制文件到指定文件夹 ,这一步出问题,先看原代码
      # 遍历文件夹内所有文件
      for root, _, files in os.walk(DIR_PATH):
          for f in files:
              if f.endswith('.pdf'):
                  f = os.path.join(root, f).replace('\\', '/')
                  new = f.replace(root.replace('\\', '/') + '/', '')
                  os.system(f'copy {f} {COPY_PATH}/{new}')
      
      • 因为我在 PyCharm 中运行,所以报错的文字是乱码
        在这里插入图片描述
      • 在命令行中看一下
        在这里插入图片描述
      • 那这就奇了怪了,语法不就是 copy 【原文件路径】 【新文件路径或父目录】
      • 然后我就想,是不是不能用 / ,只能用 \
      • 试一下
      • 还是不行,提示 “系统找不到指定的路径”
      • 那这是什么问题呢?我百思不得其解,百度一下后,找了好久才找到 这篇文章 解决了我的问题
      • 因为 路径中含有特殊符号 ,所以需要把路径用 `引号`` 包起来
      • 修改后
        在这里插入图片描述
      • 成功达成目标

    代码展示

    DIR_PATH = r'【原目录】'
    COPY_PATH = r'【新目录】'
    
    def walk_dir():
    
        global DIR_PATH, COPY_PATH
    
        DIR_PATH = DIR_PATH.replace('/', '\\')
        COPY_PATH = COPY_PATH.replace('/', '\\')
    	
    	# 创建一级子目录
        for old in os.listdir(DIR_PATH):
            new = os.path.join(COPY_PATH, old)
            if os.path.isdir(old) and not os.path.exists(new):
                os.mkdir(new)
                print(f'mkdir {new} successfully')
    
        for root, dirs, files in os.walk(DIR_PATH):
            for f in files:
                if f.endswith('.pdf') or f.endswith('.doc'):
                
                	# 路径表示归一化
                    f = os.path.join(root, f).replace('/', '\\')
                    
                    # 用路径表示文件名,以 _ 分隔父子目录
                    # 将 _ 转换为 - ,将 \ 转换为 _
                    new = f.replace(DIR_PATH + '\\', '').replace('_', '-').replace('\\', '_')
                    
                    os.system(f'''copy "{f}" "{os.path.join(COPY_PATH, new)}"''')
    
    • 看一下效果
      在这里插入图片描述
    • 表示的是 已复制 1 个文件。

    在这里插入图片描述

    • 成功复制文件到指定路径!!!



    结尾

    以上就是我要分享的内容,因为学识尚浅,会有不足,还请各位大佬指正。
    有什么问题也可在评论区留言。
    在这里插入图片描述

    展开全文
  • 文件/目录名要一样思路:获取源路径下的所有文件,文件夹如果是文件就直接在目标路径下创建相同文件名的文件,并把源文件数据写入如果是文件夹那么重复 1package com.wxhl.jq0803;import java.io.BufferedInputStream;...

    需求:

    把一个指定的路径下的所有文件/目录,复制到另一个指定路径下;文件/目录名要一样

    思路:

    获取源路径下的所有文件,文件夹

    如果是文件就直接在目标路径下创建相同文件名的文件,并把源文件数据写入

    如果是文件夹那么重复 1

    package com.wxhl.jq0803;

    import java.io.BufferedInputStream;

    import java.io.BufferedOutputStream;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    public class Demo04 {

    // 源文件夹

    static String url1 = System.getProperty("user.home")+"/Desktop/video";//"D:/min_res/video/1565";

    // 目标文件夹

    static String url2 = System.getProperty("user.home")+"/Desktop/video2";//"D:/min_res/video/551/";

    public static void main(String[] args) throws IOException {

    // TODO Auto-generated method stub

    // 创建目标文件夹

    copyDirectiory(url1, url2);

    }

    public static void copyFile(File sourcefile, File targetFile) throws IOException {

    // 新建文件输入流并对它进行缓冲

    FileInputStream input = new FileInputStream(sourcefile);

    // 新建文件输出流并对它进行缓冲

    FileOutputStream out = new FileOutputStream(targetFile);

    BufferedOutputStream outbuff = new BufferedOutputStream(out);

    // 缓冲数组

    byte[] b = new byte[1024];

    int len = 0;

    while ((len = input.read(b)) != -1) {

    outbuff.write(b, 0, len);

    }

    //关闭文件

    outbuff.close();

    input.close();

    }

    public static void copyDirectiory(String sourceDir, String targetDir) throws IOException {

    // 新建目标目录

    (new File(targetDir)).mkdirs();

    // 获取源文件夹当下的文件或目录

    File[] file = (new File(sourceDir)).listFiles();

    for (int i = 0; i < file.length; i++) {

    if (file[i].isFile()) {

    // 源文件

    File sourceFile = file[i];

    // 目标文件

    File targetFile = new File(targetDir + File.separator + sourceFile.getName());

    copyFile(sourceFile, targetFile);

    }

    if (file[i].isDirectory()) {

    // 准备复制的源文件夹

    String dir1 = sourceDir + File.separator + file[i].getName();

    // 准备复制的目标文件夹

    String dir2 = targetDir + File.separator + file[i].getName();

    copyDirectiory(dir1, dir2);

    }

    }

    }

    }

    展开全文
  • 我自己没有更改路径好像,忽然打开就提示这样了 解决方案: 开始–>右击anaconda prompt–>...将当前的位置复制粘贴在目标–>确定即可 参考文章https://www.cnblogs.com/moxihuishou/p/14297295.html ...

    我自己没有更改路径好像,忽然打开就提示这样了

    解决方案:

    开始–>右击anaconda prompt–>打开文件所在位置–>属性–>目标–>将当前的位置复制粘贴在目标–>确定即可

    在这里插入图片描述
    参考文章https://www.cnblogs.com/moxihuishou/p/14297295.html

    展开全文
  • 目标复制路径(即chrome浏览器.exe文件的路径)。 2、打开IntelliJ IDEA软件,找到file–>settings–>找到Web Browsers。 3、在chrome那一栏最右边的path中输入刚才复制的.exe路径: 注:输完路径后,在...

    1、右击桌面上的chrome浏览器图标,找到属性–>快捷方式–>目标,复制路径(即chrome浏览器.exe文件的路径)。
    在这里插入图片描述
    2、打开IntelliJ IDEA软件,找到file–>settings–>找到Web Browsers。
    3、在chrome那一栏最右边的path中输入刚才复制的.exe路径:
    在这里插入图片描述
    注:输完路径后,在空白处点击一下,以免路径没有输进去。
    4、点击OK,然后再次点击chrome按钮,就可以啦!

    展开全文
  • 在MathType安装路径下找到Office Support文件夹下的MathType Commands 6 For Word.dotm,复制粘贴C:\Program Files\Microsoft Office\root\Office16\STARTUP。(Office后的数字根据自己安装的版本,具体路径如何...
  • 然后找到以下路径Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 如果你发现这个路径下没有 CommonFilesDir (x86) 和 CommonFilesDir 这两个注册表文件,就说明是这里的问题 解决方法是...
  • 1:能从文件-属性-安全 里面复制文件路径,因为这样的话,在文件路径前有可见的unicode字符,但matlab上显示,所以会报错。 2:如果不是上面那个的问题,试试选择右上角这个按钮,将图片所在文件夹添加到路径...
  • 1.在桌面找到对应浏览器,右键属性,复制目标地址 2.打开IDEA依次选择file--settings--tools---web browsers 3.路径后输入第一步复制目标地址,确定即可
  • 2013-09-16matlab2012b没有编译器原因是...exe位置变了,可能matlab还是按照老的路径找,肯定找不到(原来在windows sdks下面,现在在windows kits下面)~~解决方法:如果你的环境是64位windows,并且vs2012装在默认目...
  • feof(fp1))后面是怎么实习判断复制到目标文件的呢,如果文feof(fp1)函数值是1不是就不会经while (!feof(fp1)){}里面了么?#include int main(void){int ch;char sfilename[100], dfilename[100];FILE *fp1, *fp2;...
  • win10虽然出来的很长一段时间,可是在是在不断的出现问题,比如这位朋友就遇上了Win10系统提示...而最近就有用户反映,在运行安装软件的过程,却出现提示:模块“XXX.DLL”已加载,可是却找不到入口点DllRegisterS...
  • Linux复制文件路径并重命名

    千次阅读 2021-06-09 14:17:52
    cp -i 原文件 目标路径/重命名文件 for example: 把当前mu'm cp -i 1.txt /root/2.txt
  • 我需要一个命令(或者可能是cp的一个选项)来创建目标目录(如果它存在的话)。示例:cp -? file /path/to/copy/file/to/is/very/deep/there test -d "$d" || mkdir -p "$d" && cp file "$d"(cp没有这个选项)...
  • 标题归类摘要如何解决连接共享打印机找不到驱动程序”打印机如何解决连接共享打印机找不到驱动程序 原发布者:喵喵星的家标题归类摘要如何解决连接共享打印机找不到驱动程序”打印机如何解决连接共享...
  • 关闭它之后就可以了 2 years ago 如果将任何文件复制到解决方案中,请确保文件处于“只读”模式 . 右键单击文件并取消选中属性选项解决了我的问题 . 2 years ago 我有同样的错误,但我正在使用 Perforce 版本控制...
  • 文章目录一、学习目标:二、方法实践:右击cmd--方法1:右击cmd--方法2:右击复制 文件/文件夹 路径参考: 一、学习目标: 在Windows目录下,空白位置右击能直接进入cmd,方便快捷方式的学习。 有了这些之后,以后...
  • 但是执行的时候报错了,提示找不到文件。解决方法:1.首先我们知道,通过文件建立rdd的textFile("file:///")的方法可以填入本地地址和HDFS地址。我们这里想要用本地文件建立一个rdd,但是是通过s...
  • 如果出现在网站中cpoy_xpath然后代码find_element_by_xpath运行报错找不到这个元素,应该考虑是不是iframe的问题 问题1 请往上是否可以看到这个 #document,这个说明你XPATH的地址在别一个子网页里面 问题1 解决...
  • 周末出去爬山,照了一大堆照片回来,照片同时存储为jpg和DNG格式,我用adobe bridge将dng格式的照片中要保留的筛选出来后,就想再对着一张张去挑jpg的照片了,于是用python写个小程序帮我挑,代码如下所示:import...
  • const fs = require('fs'); const src_list = 'F:/workspace/front';... // 允许被复制目标文件列表 /** * 允许被复制目标文件列表 */ let copyFileArr = []; fs.readFile(allowFiles, function (err, data)
  • 在 Windows Vista 和更高版本的 Windows 中,您可能会收到以下错误消息之一: Windows 无法访问 \\\ 找不到网络路径 原因 出现此错误的原因通常是 DFSN 客户端无法完成到 DFSN 路径的连接。 由于以下任一原因,连接...
  • 系统找不到指定的文件。 解决 打开注册表 搜索路径如下: HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> MySQL 因为卸载不是很干净,这里的 ImagePath 的值,还是原来的路径。 ...
  • 有两种解决办法:方法一:修改bashrc文件禁用掉cp的alias[root@~]# vi ~/.bashrc在alias cp='cp -i'前加上"#"注释,重新登录后即可实现复制不提示。方法二:使用cp命令的时候,在前面回"\"即:[root@~]# \cp -rf 源...
  • 我正在使用apache common的FileUtils.copyFile()将本地磁盘上的文件复制到网络共享位置.共享文件夹已存在,运行该应用程序的用户具有该权限. FileUtils.copyFile()执行没有异常.但是,该文件实际上并未创建.File ...
  • linux复制文件另一个文件夹或目录

    千次阅读 2021-05-09 05:11:10
    1. 前言本文主要讲解Linux系统如何...语法: cp [选项] 源文件或目录 目标文件或目录说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。该命令的各选项含义如下:- a 该选项通常在拷贝目录...
  • IntelliJ IDEA报错 Windows找不到文件“chrome”,请确定文件名是否正确,再试一次 出现问题: 解决方法: 1、右击桌面上的chrome浏览器图标,点击属性---->选择---->快捷方式---->目标 复制路径(就是谷歌...
  • 当使用cp将文件复制到可能存在或可能存在的文件夹,如果需要,如何让cp创建文件夹?以下是我的尝试:[root@file nutch-0.9]# cp -f urls-resume /nosuchdirectory/hi.txtcp: cannot create regular file `/...
  • Linux绝对路径与相对路径教程在 Windows 中,路径有绝对路径与相对路径之分,在绝对路径是相对于根路径 / 的,只要文件移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序...
  • 复制文件和目录是在命令行上执行最常见的任务之一。在Linux中,有几个命令用于复制文件cp比rsync 更受欢迎。使用 cp复制文件,rsync命令用于复制目录,是该命令一种常见的做法。为了能够复制文件和目录,您必须...
  • 1、右击桌面上的chrome浏览器图标,找到属性–>快捷方式–>目标复制路径(即chrome浏览器.exe文件的路径) 2、

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 246,445
精华内容 98,578
关键字:

复制时找不到目标路径