Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从配置列表复制python3 shutil时出错_Python 3.x_Copy_Move_Shutil - Fatal编程技术网

Python 3.x 从配置列表复制python3 shutil时出错

Python 3.x 从配置列表复制python3 shutil时出错,python-3.x,copy,move,shutil,Python 3.x,Copy,Move,Shutil,我试图通过读取config.dat文件来使用shutil复制文件。 此文件仅为: /主页/管理员/文档/文件1 /主页/管理员/文档/文件2 代码确实可以工作,但它会复制文件1,但会丢失文件2,因为它在那里看到一个\n,我猜这是因为新行 #!/usr/bin/python3 import shutil data = open("config.dat") filelist = data.read() src = filelist dest = '/home/admin/Documents/back

我试图通过读取config.dat文件来使用shutil复制文件。
此文件仅为: /主页/管理员/文档/文件1 /主页/管理员/文档/文件2

代码确实可以工作,但它会复制文件1,但会丢失文件2,因为它在那里看到一个\n,我猜这是因为新行

#!/usr/bin/python3
import shutil
data = open("config.dat")
filelist = data.read()
src = filelist
dest = '/home/admin/Documents/backup/'
shutil.copy(src, dest)
我正在获取错误代码:

Traceback (most recent call last):
  File "./testing.py", line 18, in <module>
    shutil.copy(src, dest)
  File "/usr/lib/python3.4/shutil.py", line 229, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib/python3.4/shutil.py", line 108, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 
'/home/admin/Documents/file1\n/home/admin/Documents/file2'
回溯(最近一次呼叫最后一次):
文件“/testing.py”,第18行,在
shutil.副本(src,dest)
文件“/usr/lib/python3.4/shutil.py”,第229行,副本
复制文件(src、dst、follow_symlinks=follow_symlinks)
copyfile中的文件“/usr/lib/python3.4/shutil.py”,第108行
开放式(src,'rb')作为fsrc:
FileNotFoundError:[Errno 2]没有这样的文件或目录:
“/home/admin/Documents/file1\n/home/admin/Documents/file2”
我希望这些文件的副本基于config.dat文件夹中的文件运行,但它检测到
“\n”
。有办法解决这个问题吗

感谢您的帮助

使用
split('\n')
获取文件列表并迭代该列表。您可能希望加入
文件.strip()
,以消除尾随空格和空行

import shutil


dest = '/home/admin/Documents/backup/'
with open('config.dat') as data:
    filelist = data.read().split('\n')
    for file in filelist:
        if file:
            shutil.copy(file.strip(), dest)
或者,如果在此之后不需要文件列表

with open('config.dat') as data:
    for file in data:
        if file:
            shutil.copy(file.strip(), dest)
谢谢你的帮助:)所以现在这很有效。。。出现了一些错误,因此对其进行了轻微更改,因此现在两个文件都使用以下方式进行复制:import shutil dest='/home/admin/Documents/backup/'data=open('config.dat')filelist=data.read().split('\n')用于文件列表中的文件:shutil.copy(file.strip(),dest)print(“文件已被复制”)这是可行的,但我仍然得到一个错误:将open(src,'rb')作为fsrc:FileNotFoundError:[Errno 2]没有这样的文件或目录:“”无法复制所有文件或目录。有什么建议吗?