设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 13902|回复: 8
打印 上一主题 下一主题

关于文件的拷贝

[复制链接]

7

主题

0

好友

127

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2016-10-25 16:53:28 |只看该作者 |倒序浏览
croosin先生:
我在python简明教程中看到了拷贝文件:
我想把D:\home 和D:\new 下的.zip文件拷贝到D:下

代码如下:

import os
import time

source = [r'D:\home', r'D:\new']

target_dir = r'D:'

target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'

zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))


if os.system(zip_command) == 0:
    print 'Successful backup to', target
else:
    print 'Backup FAILED'

结果报错:

Could not create output file (was replacing the original zip file)


请问这是怎么回事?
谢谢!
回复

使用道具 举报

174

主题

45

好友

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2016-10-25 23:27:51 |只看该作者
你是不是已经有了个一个zip的文件
你把你的zip_command输出出来,直接复制到控制台这个目录下跑一下试试行不行
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

7

主题

0

好友

127

积分

注册会员

Rank: 2

板凳
发表于 2016-10-26 09:05:22 |只看该作者
crossin先生 发表于 2016-10-25 23:27
你是不是已经有了个一个zip的文件
你把你的zip_command输出出来,直接复制到控制台这个目录下跑一下试试行 ...

我只是在source中: D:\home 和D:\new 下分别有一个.zip文件
在target中:\下没有文件。

我直接输出zip_command:结果是:zip -qr 'D:20161026085824.zip' D:\home D:\new
直接复制到控制台这个目录下跑一下 这个我不知道怎么弄.....
回复

使用道具 举报

7

主题

0

好友

127

积分

注册会员

Rank: 2

地板
发表于 2016-10-26 09:05:40 |只看该作者
本帖最后由 Tony 于 2016-10-26 09:06 编辑
crossin先生 发表于 2016-10-25 23:27
你是不是已经有了个一个zip的文件
你把你的zip_command输出出来,直接复制到控制台这个目录下跑一下试试行 ...

我只是在source中: D:\home 和D:\new 下分别有一个.zip文件
在target中: D:\下没有文件。

我直接输出zip_command:结果是:zip -qr 'D:20161026085824.zip' D:\home D:\new
直接复制到控制台这个目录下跑一下 这个我不知道怎么弄.....
回复

使用道具 举报

174

主题

45

好友

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2016-10-26 18:14:59 |只看该作者
Tony 发表于 2016-10-26 09:05
我只是在source中: D:\home 和D:\new 下分别有一个.zip文件
在target中: D:\下没有文件。

在你的文件夹按住shift点右键,选择在此处打开命令提示符,然后在里面运行这个命令,看看提示什么。
我觉得是你这个zip命令本身有问题,你再确认下看看

d: 后面是不是应该有个\
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

7

主题

0

好友

127

积分

注册会员

Rank: 2

6#
发表于 2016-10-26 22:23:00 |只看该作者
crossin先生 发表于 2016-10-26 18:14
在你的文件夹按住shift点右键,选择在此处打开命令提示符,然后在里面运行这个命令,看看提示什么。
我觉 ...

我分别在以上文件夹右键在终端操作后,还是不行。。
这是那本书的源代码:

  1. #!/usr/bin/python
  2. # Filename: backup_ver1.py
  3. import os
  4. import time
  5. # 1. The files and directories to be backed up are specified in a list.
  6. source = ['/home/swaroop/byte', '/home/swaroop/bin']
  7. # If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
  8. # 2. The backup must be stored in a main backup directory
  9. target_dir = '/mnt/e/backup/' # Remember to change this to what you will be using
  10. # 3. The files are backed up into a zip file.
  11. # 4. The name of the zip archive is the current date and time
  12. target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
  13. # 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
  14. zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
  15. # Run the backup
  16. if os.system(zip_command) == 0:
  17.     print 'Successful backup to', target
  18. else:
  19.     print 'Backup FAILED'
复制代码
我照着这个写的,不知道哪里出了问题。
回复

使用道具 举报

174

主题

45

好友

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

7#
发表于 2016-10-26 23:32:45 |只看该作者
Tony 发表于 2016-10-26 22:23
我分别在以上文件夹右键在终端操作后,还是不行。。
这是那本书的源代码:我照着这个写的,不知道哪里出 ...

它的target dir有/,你的没有啊,你的路径不对。也就是说首先你这个 zip 压缩命令本身不对,那跟你python代码就没关系了
最起码一个问题,你这个路径也应该是 D:\20161026085824.zip
如果在命令行里直接运行都不行,那你这个代码是去调用这个命令,又怎么可能成功。
你看看课程里有一课叫常用命令行,或者网上搜下关于命令行、文件路径方面的基础
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

8#
发表于 2016-10-26 23:34:10 |只看该作者
Tony 发表于 2016-10-26 22:23
我分别在以上文件夹右键在终端操作后,还是不行。。
这是那本书的源代码:我照着这个写的,不知道哪里出 ...

对了还有个问题,他可以这么写,是因为linux下面默认就有 zip 命令,但windows默认并没有啊。这你怎么可能成功,你要做这个先保证windows上能使用 zip 命令
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

7

主题

0

好友

127

积分

注册会员

Rank: 2

9#
发表于 2016-10-27 08:46:55 |只看该作者
crossin先生 发表于 2016-10-26 23:34
对了还有个问题,他可以这么写,是因为linux下面默认就有 zip 命令,但windows默认并没有啊。这你怎么可能 ...

哦,我还以为这个命令是通用的,谢谢了哈!我去查一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-12-31 01:08 , Processed in 0.016535 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部