python文件写然后追加

时间:2016-01-13 03:55:25

标签: python

我正在尝试编写一个函数,我将内容写入文本文件,然后将另一个文本文件的内容全部复制到同一行。然后我下次运行这个函数时,我希望它保持内容只创建一个新行,然后填充该行。

到目前为止我已经

# \rApples: 1\rBananas: 1\rPineapples: 1\r\r

当我运行它时,它给了我一个

def write_to_new():
    report = 'original.txt'
    now = datetime.datetime.now()
    new_file = open('refresh.txt', 'a')
    new_file.write('Year: %s' % now.year+', ' + 'Month: %s' % now.month+', ' + 'Day: %s' % now.day+', ')
    new_file.write(shutil.copy(report,'refresh.txt'))

3 个答案:

答案 0 :(得分:2)

shutil存在几个问题:

    Py2中的
  • shutil.copy()不会返回任何内容 - 错误的原因(在Py3中它返回创建的文件的名称)
  • shutil.copy()使用底层shell将文件复制到新文件,并且不会将该文件的内容带入python

只需打开original.txt并阅读内容并将其写出来:

def write_to_new():
    with open('original.txt') as report, open('refrest.txt', 'a') as new_file:
        now = datetime.datetime.now()
        new_file.write('Year: {now.year}, '
                       'Month: {now.month}, '
                       'Day: {now.day}, {original}'
                       .format(now=now, original=report.read()))

答案 1 :(得分:0)

你做不到:

new_file.write(shutil.copy(report,'refresh.txt'))

new_file.write需要一个字符串参数。

答案 2 :(得分:0)

在将内容写入new_file之前,您必须将复制的内容转换为字符串类型。

new_file.write(STR(shutil.copy(报告,' refresh.txt')))

希望它能够工作