拷贝

shutil模块,ZipFile 和 TarFile 两个模块

江枫思渺然 提交于 2020-03-19 04:55:20
高级的文件、文件夹、压缩包处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,可以部分内容 shutil.copyfile(src, dst) 拷贝文件 shutil.copymode(src, dst) 仅拷贝权限。内容、组、用户均不变, shutil.copystat(src, dst) 拷贝状态的信息,包括:mode bits, atime, mtime, flags 只拷贝修改时间和访问时间,其他不拷贝,包括权限和创建时间 shutil.copy(src, dst) 拷贝文件和权限 shutil.copy2(src, dst) 拷贝文件和状态信息 shutil.ignore_patterns(*patterns) shutil.copytree(src, dst, symlinks=False, ignore=None) 递归的去拷贝文件,这里test4,new_test4的源目标都是目录 例如:copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*')) shutil.rmtree(path[, ignore_errors[, onerror]]) 递归的去删除文件和目录 shutil.move(src, dst)

Finder增强插件XtraFinder

大憨熊 提交于 2020-03-18 14:45:22
一、安装 下载后双击 点击XtraFinder.pkg文件 点“继续” 点“安装” 安装完成。 二、使用 如果你觉得 Mac 上的 Finder 很多时候用着并不方便,又不想花钱购买我们之前介绍过的 TotalFinder 的话,那么小编今天向你强烈推荐免费的 XtraFinder。 从功能上来说,XtraFinder 可以完全替代售价18美金的 TotalFinder,且功能更加强大,更新也非常频繁。其中包括很多用户都非常喜欢的功能。 标签功能 – 你可能会经常打开一大堆 Finder 窗口,不仅占用桌面空间,而且关闭起来也非常麻烦。XtraFinder 能够让你像使用浏览器一样,将多个独立的窗口以标签页的形式,集中到一个窗口上。你还可以选择标签的风格,有 Chrome 和 Opera 两种风格可选。 当然,启用标签功能之后你还可以使用浏览器中常用的快捷键对标签进行管理。比如: command+T 打开新标签; command+W 关闭当前标签; command+shift+T 重新打开刚才关闭的标签; command+Q 关闭整个窗口; … 剪切和粘贴 – OS X 默认的 Finder 中并没有「剪切」功能功能,只能拷贝。不过在 XtraFinder 的偏好设置中,你可以开启「剪切和粘贴」功能,该功能对文件夹以及任何文件都有效。 文件夹排在最前 – 默认将 Finder

scp远程拷贝命令

試著忘記壹切 提交于 2020-03-17 11:03:43
scp Linux拷贝命令,从一个系统拷贝文件到另一个系统 一、复制文件: (1)将本地文件拷贝到远程 scp 文件名 用户名@计算机IP或者计算机名称:远程路径 本地192.168.1.8客户端 scp /root/install.* root@192.168.1.12:/usr/local/src (2)从远程将文件拷回本地 scp 用户名@计算机IP或者计算机名称:文件名 本地路径 本地192.168.1.8客户端取远程服务器12、11上的文件 scp root@192.168.1.12:/usr/local/src/*.log /root/ 来源: https://www.cnblogs.com/hanrp/p/12508798.html

为什么说java中只有值传递?

瘦欲@ 提交于 2020-03-17 01:32:35
值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。 引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。 Java中其实还是值传递的,只不过对于对象参数,值的内容是对象的引用。 无论是值传递还是引用传递,其实都是一种求值策略(Evaluation strategy)。 在求值策略中,还有一种叫做按 共享传递 (call by sharing)。其实Java中的参数传递严格意义上说应该是按共享传递。 按共享传递,是指在调用函数时,传递给函数的是实参的地址的拷贝(如果实参在栈中,则直接拷贝该值)。在函数内部对参数进行操作时,需要先拷贝的地址寻找到具体的值,再进行操作。如果该值在栈中,那么因为是直接拷贝的值,所以函数内部对参数进行操作不会对外部变量产生影响。如果原来拷贝的是原值在堆中的地址,那么需要先根据该地址找到堆中对应的位置,再进行操作。因为传递的是地址的拷贝所以函数内对值的操作对外部变量是可见的。 简单点说,Java中的传递,是值传递,而这个值,实际上是对象的引用。 而按共享传递其实只是按值传递的一个特例罢了。 所以我们可以说Java的传递是按共享传递,或者说Java中的传递是值传递。 详见 https

让VS支持jQuery代码智能提示

你。 提交于 2020-03-16 07:52:47
VS默认设置下编写 jQuery 代码是这样的: 解决办法: 1、在项目的“管理NuGet程序包”中安装JQuery: 2、打开:工具 -> 选项 -> 文本编辑器 -> JavaScript -> IntelliSence -> 引用;会弹出如下窗口: 3、将 “引用组” 设置为:Implicit(Web);默认是:Implicit(Windows),在该引用组下设置无效,必须在Web引用组下设置。 4、然后点击 “将引用添加到当前组” 右边的按钮,会弹出一个文本选择框,将之前安装好的JQuery文件拷贝到打开的文件夹下(在VS的安装路径下)【其实随便找个jQuery拷贝到References目录即可,不一定需要通过第一步来安装】。注意,要拷贝完整.js文件,不要拷贝.min.js文件。然后点击“打开”。 5、此时,JQuery文件已经添加到“包含的文件”中。最后点击“确定”就OK了。 来源: https://www.cnblogs.com/Arlar/p/6248345.html

ES6 解构赋值

ⅰ亾dé卋堺 提交于 2020-03-15 20:55:21
对象的扩展运算符(...)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。 拷贝对象 let aa = { age: 18, name: 'aaa' } let bb = {...aa}; console.log(bb); // {age: 18, name: "aaa"} 合并对象 扩展运算符(...)可以用于合并两个对象 let aa = { age: 18, name: 'aaa' } let bb = { sex: '男' } let cc = {...aa, ...bb}; // 等同于: // let cc = Object.assign({}, aa, bb); console.log(cc); // {age: 18, name: "aaa", sex: "男"} 拷贝并修改对象 在扩展运算符后面,加上自定义的属性,则扩展运算符内部的同名属性会被覆盖掉。 let aa = { age: 18, name: 'aaa' } let dd = {...aa, name: 'ddd'}; // 等同于: // let dd = {...aa, ...{name: 'ddd'}}; // let dd = Object.assign({}, aa, { name: 'ddd'}); console.log(dd); // {age: 18, name: "ddd"}

拷贝、赋值与销毁

我只是一个虾纸丫 提交于 2020-03-15 12:21:09
一个类的拷贝控制操作包含: 拷贝构造函数 拷贝赋值运算符 移动构造函数 移动赋值运算符 析构函数 其中: 拷贝和移动构造函数定义了当用同类型的另一个对象初始化本对象时的操作。 拷贝和移动赋值运算符定义了将一个对象赋予同类型的另一个对象时的操作。 析构函数定义了当此类型对象销毁时的操作。 如果一个类没有定义所有这些拷贝控制成员,编译器会自动为它定义缺省的操作。对一些类来说,依赖于这些操作的默认定义会导致灾难。 拷贝构造函数 如果一个构造函数的第一个参数是自身类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数: class Foo{ public: Foo(); //默认构造函数 Foo(const Foo&); //拷贝构造函数 }; 拷贝构造函数的第一个参数必须是引用类型。 虽然可以定义一个接受非 const 引用的拷贝构造函数,但是此参数几乎总是 const 的。 拷贝构造函数在一些情况下会隐式使用,因此拷贝构造函数通常不定义成 explicit 。 合成拷贝构造函数 如果没有自定义拷贝构造函数,编译器会自动生成一个,与合成默认构造函数不同,即使定义了其他构造函数,编译器也会合成一个拷贝构造函数。 一般情况,合成的拷贝构造函数会从给定对象中依次将每个非 static 成员拷贝到正在创建的对象中,每个成员的类型决定了如何拷贝: 对类类型的成员

python 深浅拷贝小记

天大地大妈咪最大 提交于 2020-03-15 11:30:27
浅拷贝:只拷贝第一层的数据 深拷贝:相当于克隆 一份,也就是完全复制,和被克隆对象完全没关系。 浅拷贝示例: 先定义一个列表 >>> s = [1,'alex','alvin'] >>> s2 = copy.copy(s)  使用copy()方法拷贝,创建一个新的对象s2 >>> print s2    拷贝之后s2对象和s对象的内容一样。 [1,'alex','alvin'] >>> s2[0] = 3    修改s2对象的值 >>> print s2 [3,'alex','alvin']    打印s2,发现s2对象的值发生了变化 >>> print s [1,'alex','alvin']    而对应的s对象的值却没有发生任何变化 总结:简单的copy拷贝,新创建的对象和被拷贝的对象之间没有关系,两者修改任意一个对象的值,都不会对对方产生影响。 >>> s = [[1,2],'alex','alvin'] >>> s3 = copy.copy(s)    做拷贝 >>> print s       [[1,2],'alex','alvin'] >>> print s3 [[1,2],'alex','alvin']    在这一步之前s和s2输出的值都是一样的。 >>> s3[1] = 'linux'    修改s2对象的值,这里一步s2发生变化,s不会发生变化,两者没有影响

直接初始化、拷贝初始化

随声附和 提交于 2020-03-14 18:46:02
1.直接初始化 1)直接初始化实际上是要求编译器选择 参数最匹配 的一般构造函数 2.拷贝初始化 1)拷贝初始化实际上时要求编译器将 右侧运算对象 拷贝到正在创建的对象中, 如有需要,还要进行类型转换 2)拷贝初始化通常使用拷贝构造函数来完成 3)拷贝初始化发生时机: 用等号"=" 定义 变量时(注意定义二字,不是定义的时候使用等号是调用拷贝赋值运算符) 将一个对象作为实参传递给一个非引用的形参 从一个返回类型为非引用类型的函数中返回一个对象 用花括号列表初始化数组元素或者一个聚合类中的成员(因为也用到了等号"="定义变量) 3)编译器可以“绕过”拷贝构造函数:即编译器有时 可以 进行优化( 但不是必须 ),跳过拷贝构造函数,直接使用转换构造函数构造对象 string s = "666"; //先调用转换构造函数来构造一个临时的string对象(内容为:666),再调用拷贝构造函数用这个临时对象来构造s 编译器可以优化为: string s("666"); //直接调用转换构造函数来构造对象 来源: https://www.cnblogs.com/Joezzz/p/9717699.html

python开发之路之深浅拷贝

社会主义新天地 提交于 2020-03-13 14:39:42
深浅拷贝 特别说明: 1. 浅拷贝只拷贝一层,后面就是共享了。 2. 例如[ [1,2,3] ,4,5,6 ],在这个嵌套列表中,小列表[1,2,3]就是一块共享的内存空间,它不是存储地址,所以你浅拷贝过来的数据对小列表即共享内存空间进行了数据修改,那么,之前的源数据也会被修改。因为修改了共 享内存空间的数据, 就相当于修改了源数据在内存中的指针方向。 3.深拷贝相当于克隆一份。 浅拷贝 实例一: a = [1,'alex','alvin'] b = a[:] print(a) print(b) 打印结果如下: D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py [1, 'alex', 'alvin'] [1, 'alex', 'alvin'] 这个时候对b中的'1'进行修改,观察a列表里面的值是否会发生变化? b[1] = 'zhangjunchao' #修改1的值为zhangjunchao print(a) print(b) D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py [1, 'alex', 'alvin'] #a没有发生变化 [1, 'zhangjunchao', 'alvin'] #b发生变化 实例二: a = [[1,2],'alex',