TypeError:write()参数必须是str,而不是_io.TextIOWrapper

The*_*mer 0 python typeerror

如何将文件复制到另一个文件?

我正在使用的代码是:

FileX = open("X.txt","r")
FileY = open("Y.txt","w")
X = FileX
FileY.write(FileX)
FileX.close()
FileY.close()
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

TypeError: write() argument must be str, not _io.TextIOWrapper
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

abc*_*ccd 5

FileX目前是文件指针,而不是上下文X.txt.要复制一切从X.txt到Y.txt,您将需要使用FileX.read()写的阅读内容FileX:

FileY.write(FileX.read())
Run Code Online (Sandbox Code Playgroud)

也许你也应该考虑使用一个with声明,

with open("X.txt","r") as FileX, open("Y.txt","w") as FileY:
    FileY.write(FileX.read())
# the files will close automatically
Run Code Online (Sandbox Code Playgroud)

并且如评论所示,您应该使用该shutil模块来复制文件和/或目录,

import shutil
shutil.copy('X.txt', 'T.txt')
# use shutil.copy2 if you want to make an identical copy preserving all metadata
Run Code Online (Sandbox Code Playgroud)


小智 -3

str = FileX.readLines()

FileY.write(str)

,传递字符串而不是文件