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

时间:2017-04-24 06:07:45

标签: python typeerror

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

我正在使用的代码是:

FileX = open("X.txt","r")
FileY = open("Y.txt","w")
X = FileX
FileY.write(FileX)
FileX.close()
FileY.close()

出现错误:

TypeError: write() argument must be str, not _io.TextIOWrapper

如何解决此错误?

2 个答案:

答案 0 :(得分:5)

FileX当前是文件指针,而不是X.txt的上下文。要复制从X.txtY.txt的所有内容,您需要使用FileX.read()来撰写FileX的阅读内容:

FileY.write(FileX.read())

也许您还应该考虑使用with语句

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

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

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

答案 1 :(得分:-3)

  

str = FileX.readLines()

     

FileY.write(STR)

,传递字符串而不是文件