python3 shutil 从配置列表复制时出错
python3 shutil error copying from config list
我正在尝试通过读取 config.dat 文件来使用 shutil 复制文件。
这个文件很简单:
/home/admin/Documents/file1
/home/admin/Documents/file2
代码确实有效,但它可以复制 file1,但随后会错过 file2,因为它在那里看到一个 \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'
我想根据 config.dat 文件夹中的文件将这些文件复制到 运行,但它检测到 '\n'
。有办法解决这个问题吗?
感谢您的帮助
使用split('\n')
获取文件列表并迭代该列表。您可能想加入 file.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)
我正在尝试通过读取 config.dat 文件来使用 shutil 复制文件。
这个文件很简单:
/home/admin/Documents/file1
/home/admin/Documents/file2
代码确实有效,但它可以复制 file1,但随后会错过 file2,因为它在那里看到一个 \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'
我想根据 config.dat 文件夹中的文件将这些文件复制到 运行,但它检测到 '\n'
。有办法解决这个问题吗?
感谢您的帮助
使用split('\n')
获取文件列表并迭代该列表。您可能想加入 file.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)