我在该文件中有一个带有文件名的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:找不到
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()发布于 2016-11-02 12:55:17
问题并不完全清楚,但使用cp命令创建字符串的方式肯定存在问题。
如果对os.system方法中使用的字符串进行打印,可以看到如下内容:
cp -R /yourpathfile/file /home/admin/Pycharm/backup/ /yourpathfile/file _copy 当您第二次使用名称和路径时,cp接受两个参数作为输入(源和目标),但是您只需要文件名。
此外,字符串"/home/admin/Pycharm/backup/“的末尾还有一个空格,因此如果您与文件名连接,它将给出一个错误
我试着用这种方式调整cp部分,ant --这似乎是有效的:
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()https://stackoverflow.com/questions/40380034
复制相似问题