python - 通过从文本文件中获取名称来复制文件。- Python
问题描述
我试图通过从文本文件“input.txt”中读取文件名来将几个文件从一个文件夹复制到另一个文件夹。我做错了什么?先感谢您。
import shutil
import os
f = open('input.txt','r')
src=r'C:\Users\abhishekcho\Desktop\Self\folder1'
dst=r'C:\Users\abhishekcho\Desktop\Self\folder2'
for i in range(4):
file_name = f.readline()
source = os.path.join(src,file_name)
shutil.copy2(source,dst)
输出:
PS C:\Users\abhishekcho\Desktop\Self> &
C:/Users/abhishekcho/AppData/Local/Programs/Python/Python37-32/python.exe
c:/Users/abhishekcho/Desktop/Self/test.py Traceback (most recent call
last): File "c:/Users/abhishekcho/Desktop/Self/test.py", line 10, in
<module>
shutil.copy2(source,dst) File "C:\Users\abhishekcho\AppData\Local\Programs\Python\Python37-32\lib\shutil.py",
line 263, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks) File "C:\Users\abhishekcho\AppData\Local\Programs\Python\Python37-32\lib\shutil.py",
line 120, in copyfile
with open(src, 'rb') as fsrc: OSError: [Errno 22] Invalid argument:
'C:\\Users\\abhishekcho\\Desktop\\Self\\folder1\\text1.txt\n'
解决方案
好像尾随换行符 \n 包含在您的路径中并导致错误。你可以删除它rstrip()
import shutil
import os
f = open('input.txt','r')
src=r'C:\Users\abhishekcho\Desktop\Self\folder1'
dst=r'C:\Users\abhishekcho\Desktop\Self\folder2'
for i in range(4):
file_name = f.readline().rstrip()
source = os.path.join(src,file_name)
shutil.copy2(source,dst)
推荐阅读
- ios - 以编程方式从 UITabBarController 呈现模态 UIViewController
- ios - Xcode 10.1 dyld_shared_cache_extract_dylibs 失败 iOS 13.4
- java - spring 在 cors 中读取服务器名称
- python - 如何计算经过的时间Python
- python - Python、`let`、`with`、局部范围、调试打印和临时变量
- spyder - 使用 Spyder 历史记录按第一个字符重新运行最后一个命令
- c# - 为什么 Unity 使用了一些函数如 GetChild() 的 transform 而不是 gameObject?
- python - 我想遍历python中松弛通道的消息和时间戳
- makefile - 如何使用 GNU Autotools 更改 *.o 文件和产品目录?
- python - kivy 无法导入名称“调色板”