Python 如何在一个文件上写入,然后将其复制到另一个文件上?

Python 如何在一个文件上写入,然后将其复制到另一个文件上?,python,file,text,write,Python,File,Text,Write,目前正在学习Python,我正在尝试编写一个.txt文件,然后将其复制到另一个.txt文件中 from sys import argv script, send_file, get_file = argv in_file = open(send_file, "r+") in_file.write("I'm sending information to the receiver file.") open(get_file, "w")

目前正在学习Python,我正在尝试编写一个.txt文件,然后将其复制到另一个.txt文件中

from sys import argv

script, send_file, get_file = argv

in_file = open(send_file, "r+")
in_file.write("I'm sending information to the receiver file.")

open(get_file, "w")
get_file.write(f"{in_file}")
但我一直都是这样的错误

Traceback (most recent call last):
  File "ex15_test.py", line 11, in <module>
    get_file.write(f"{in_file}")
AttributeError: 'str' object has no attribute 'write'
但这就是最终写入第二个文件的内容:

  • 你知道我做错了什么吗
  • 当我在第二段代码中使用变量时,它为什么起作用
open(get_file,“w”)
中,
get_file
是文件名,它是一个字符串

您需要写入文件对象,就像在代码的第一部分中读取一样。因此,它将是:

f = open(get_file, "w")
f.write(f"{in_file}")
f.close()
with open(get_file, "w") as f:
    f.write(f"{in_file}")
请注意,您忘记关闭代码中的两个文件

不过,好的做法是使用上下文管理器,不管代码中发生了什么(异常,…),它都会为您处理结束

因此,最好的方法是:

f = open(get_file, "w")
f.write(f"{in_file}")
f.close()
with open(get_file, "w") as f:
    f.write(f"{in_file}")
open(get_file,“w”)
中,
get_file
是文件名,它是一个字符串

您需要写入文件对象,就像在代码的第一部分中读取一样。因此,它将是:

f = open(get_file, "w")
f.write(f"{in_file}")
f.close()
with open(get_file, "w") as f:
    f.write(f"{in_file}")
请注意,您忘记关闭代码中的两个文件

不过,好的做法是使用上下文管理器,不管代码中发生了什么(异常,…),它都会为您处理结束

因此,最好的方法是:

f = open(get_file, "w")
f.write(f"{in_file}")
f.close()
with open(get_file, "w") as f:
    f.write(f"{in_file}")

很抱歉代码混乱,但我认为这应该满足您的要求

from sys import argv

script, send_file, get_file = argv

in_file = open(send_file, "r+")
in_file.write("I'm sending information to the receiver file.")
in_file.close()

in_file_2 = open(send_file, "r")
in_file_text = in_file_2.read()
in_file_2.close()

secondFile = open(get_file, "w")
secondFile.write(f"{in_file_text}")
secondFile.close()

很抱歉代码混乱,但我认为这应该满足您的要求

from sys import argv

script, send_file, get_file = argv

in_file = open(send_file, "r+")
in_file.write("I'm sending information to the receiver file.")
in_file.close()

in_file_2 = open(send_file, "r")
in_file_text = in_file_2.read()
in_file_2.close()

secondFile = open(get_file, "w")
secondFile.write(f"{in_file_text}")
secondFile.close()

open(get_file,“w”)不会将变量存储在任何位置。out_file=open(get_file,“w”)将打开文件并将其存储在变量out_file中。这是正确的。现在将要写入该文件的内容转换为字符串,然后写入。您当前正在尝试将文件对象写入文件,这是不正确的。好的,现在很清楚为什么您在打开文件时需要该变量,但确实怀疑为什么需要该变量。非常感谢您的解释,open(get_文件,“w”)不会将变量存储在任何地方。out_file=open(get_file,“w”)将打开文件并将其存储在变量out_file中。这是正确的。现在将要写入该文件的内容转换为字符串,然后写入。您当前正在尝试将文件对象写入文件,这是不正确的。好的,现在很清楚为什么您在打开文件时需要该变量,但确实怀疑为什么需要该变量。非常感谢您的解释哦,我明白了,所以在我的代码中存储文件的位置叫做文件对象。这个概念现在很清楚了,我真的很感激你不客气。注意,如果你觉得其中一个答案回答了你的问题,你可以接受它(勾选左边)。哦,是的,当然。只是我对这个网站还是新手,所以我的名声不允许我改变公共显示,谢谢你指出了这一点。哦,我明白了,所以在我的代码中存储文件的地方叫做文件对象。这个概念现在很清楚了,我真的很感激你不客气。注意,如果你觉得其中一个答案回答了你的问题,你可以接受它(勾选左边)。哦,是的,当然。只是我对这个网站还是新手,所以我的名声不允许我改变公开的展示,谢谢你指出了这一点。哦,天哪,这正是我想要做的。我知道我需要在代码结束时关闭这些文件,但我没有想到以那种方式使用close函数。谢谢是的,对文件所做的任何更改只有在关闭文件后才应用哦,天啊,这正是我想要做的。我知道我需要在代码结束时关闭这些文件,但我没有想到以那种方式使用close函数。谢谢是的,对文件所做的任何更改仅在关闭文件后应用