2016-01-13 97 views
-1

我试图写一个函数,我写内容到一个文本文件,然后我复制另一个文本文件的内容都到同一行。然后下一次我运行这个功能,我希望它保持内容只创建一个新行然后填充该行。python文件写入然后追加

到目前为止,我已经

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')) 

当我运行这个它给了我一个

TypeError: expected a character buffer object 

回答

2

有几个问题与shutil

  • shutil.copy()中的Py2不返回任何东西 - 错误的原因(在PY3它返回创建的文件的名称)
  • shutil.copy()使用的底层外壳将文件复制到一个新的文件,并且不把那个文件的内容到蟒蛇

只要打开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())) 
0

你不能做:

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

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

0

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

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

希望它会工作