通过从文本文件获取名称来复制文件。-python 我试图通过读取文本文件“input.txt”中的文件名,将几个文件从一个文件夹复制到另一个文件夹。我做错了什么?先谢谢你。

通过从文本文件获取名称来复制文件。-python 我试图通过读取文本文件“input.txt”中的文件名,将几个文件从一个文件夹复制到另一个文件夹。我做错了什么?先谢谢你。,python,Python,输出: 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/t

输出:

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'
PS C:\Users\abhishekcho\Desktop\Self>&
C:/Users/abhishekcho/AppData/Local/Programs/Python/Python37-32/Python.exe
c:/Users/abhishekcho/Desktop/Self/test.py回溯(最近的调用)
最后):文件“c:/Users/abhishekcho/Desktop/Self/test.py”,第10行,在
shutil.copy2(源代码,dst)文件“C:\Users\abhishekcho\AppData\Local\Programs\Python\Python37-32\lib\shutil.py”,
第263行,副本2
copyfile(src,dst,follow_symlinks=follow_symlinks)文件“C:\Users\abhishekcho\AppData\Local\Programs\Python\Python37-32\lib\shutil.py”,
第120行,在copyfile中
将open(src,'rb')作为fsrc:OSError:[Errno 22]无效参数:
'C:\\Users\\abhishekcho\\Desktop\\Self\\folder1\\text1.txt\n'

似乎路径中包含了尾随的换行符\n并导致了错误。您可以使用
rstrip()


似乎尾随换行符\n包含在路径中并导致错误。您可以使用
rstrip()


不,这只是因为
readline
留下了一个尾随的新行。是的,它的工作原理是按照BenB的建议在readline之后添加rstrip()。不,这只是因为
readline
留下了尾随的新行。是的,它的工作原理是按照BenB的建议在readline之后添加rstrip()。
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'
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)