首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >备份dir中的文件(如果它们不存在)

备份dir中的文件(如果它们不存在)
EN

Stack Overflow用户
提问于 2016-11-02 12:31:55
回答 1查看 209关注 0票数 0

我在该文件中有一个带有文件名的Pathfile.dat,如果一个文件已经不存在,我将尝试复制文件的备份

函数“if files.is_file():”有问题。

下面是我似乎要犯的错误

/home/admin/Pycharm/backup/test1 1

未找到/home/admin/Pycharm/backup/test2 2

未找到cp:在‘/home/admin/Pycharm/backup/test1’1‘之后缺少目标文件操作数

请尝试“cp--帮助”以获得更多信息。

sh: 2: /home/admin/Pycharm/backup/: not

sh: 3:_copy:找不到

cp:在‘/home/admin/Pycharm/backup/test2’之后缺少目标文件操作数

请尝试“cp--帮助”以获得更多信息。

sh: 2: /home/admin/Pycharm/backup/: not

sh: 3:_copy:找不到

代码语言:javascript
复制
import os
from pathlib import Path
import logging


filename = 'config.dat'
Configlist = []

def createlist(): 
    with open(filename) as f:
        for item in f:
            Configlist.append(os.path.abspath(item))


def copy():
    for list in Configlist:
        print(list)
        files = Path(list)
        if files.is_file():
            print("Found")
        else:
            print("not Found")
            os.system("cp -R " + list + " /home/admin/Pycharm/backup/ " + list + "_copy ")

createlist()
copy()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-02 12:55:17

问题并不完全清楚,但使用cp命令创建字符串的方式肯定存在问题。

如果对os.system方法中使用的字符串进行打印,可以看到如下内容:

代码语言:javascript
复制
cp -R /yourpathfile/file /home/admin/Pycharm/backup/ /yourpathfile/file _copy 

当您第二次使用名称和路径时,cp接受两个参数作为输入(源和目标),但是您只需要文件名。

此外,字符串"/home/admin/Pycharm/backup/“的末尾还有一个空格,因此如果您与文件名连接,它将给出一个错误

我试着用这种方式调整cp部分,ant --这似乎是有效的:

代码语言:javascript
复制
import os
from pathlib import Path
import logging


filename = 'config.dat'
Configlist = []

def createlist():
    with open(filename) as f:
        for item in f:
            Configlist.append((os.path.abspath(item), item))


def copy():
    for (list,name) in Configlist:
        files = Path(list)
        if files.is_file():
            print("Found")
        else:
            print("not Found")
            string = "cp -R " + str(list[:-1]) + " /home/admin/Pycharm/backup/"+name[:-1] + "_copy "
            print(string)
            os.system(string)

createlist()
copy()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40380034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档