python文件追加内容
1. python 如何实现向同一个单元格追加写内容
再网络上找到一个思路:
1:打开已经存在的.xls文件
2:一份已经存在.xls的文件
3:向文件中写入数据
4:删除之前的文件
5:保存一份相同的文件
文件内容大致如下,提示不存在
总结:
往已经存在的xls文件中,写入新的行,新的数据,对应的逻辑为:
1:用xlrd.open_workbook打开已有的xsl文件
2:然后用,from xlutils. import ;,之后的去从打开的xlrd的Book变量中,拷贝出一份,成为新的xlwt的Workbook变量
3:然后对于xlwt的Workbook变量,就是正常的:
通过get_sheet去获得对应的sheet
拿到sheet变量后,就可以往sheet中写入新的数据
4:写完新数据后,最终save保存
2. python怎么向已经存在的xml文件中追加填入数据
直接操作文件肯定不现实,只能先使用python自带模块xml.etree 解析xml,然后找到对应的节点把数据添加进去,重新写入文件。
3. 如何在python中向文件内容的行尾追加一列
把1.txt和2.txt的内容分别扫描,存入两个字典里面,然后输出内容,两个字典的内容并排。
4. 使用python编程,实现对txt文件中每行内容进行追加。
#-*-coding:utf-8-*-
importre
importos
filepath='E:\data11-20\0.025'
#filepath=os.getcwd()
lst=[]
foriinrange(3,100):
filename='plane1-conv{:03d}.out'.format(i)
fullname=(os.sep).join([filepath,filename])
withopen(fullname)asf:
s=f.read().strip()
lst1=[re.split(r's+',si.strip())[-1]forsiins.split(' ')]
lst.append(lst1)
#lst是一个二维数组,每个文件的最后一列作为一个一维数组存在里面
#然后找出最长列的长度lmax,其他比它短的数据列,用lmax-len(i)组空格补到和它一样长
#每组空格的数目等于数据列的第一个数据的长度
lmax=max([len(i)foriinlst])
ws=[i+[''*len(i[0])]*(lmax-len(i))foriinlst]
withopen('E:\hehe.txt','w')aswf:
wf.write(' '.join([''.join(i)foriinws]))
5. python怎么以追加的方式写文件
一、用Python创建一个新文件,内容是从0到9的整数, 每个数字占一行:
#python
>>>f=open('f.txt','w') # r只读,w可写,a追加
>>>for i in range(0,10):f.write(str(i)+' ')
. . .
>>> f.close()
二、文件内容追加,从0到9的10个随机整数:
#python
>>>import random
>>>f=open('f.txt','a')
>>>for i in range(0,10):f.write(str(random.randint(0,9)))
. . .
>>>f.write(' ')
>>>f.close()
三、文件内容追加,从0到9的随机整数, 10个数字一行,共10行:
#python
>>> import random
>>> f=open('f.txt','a')
>>> for i in range(0,10):
. . . for i in range(0,10):f.write(str(random.randint(0,9)))
. . . f.write(' ')
. . .
>>> f.close()
四、把标准输出定向到文件:
#python
>>> import sys
>>> sys.stdout = open("stdout.txt", "w")
6. python 添加文本内容到文件
用a模式(append)打开文件,
f = open('test.txt','a')
f.write('c1')
f.close()
7. 如何用Python在文件的头部添加内容
1、将原文件 f.readlines() 读到一个list中。
2、先创建一个新文件,写新的内容,再写上面读到的list中的内容。
3、删除原文件,将新文件改名为原文件名。
8. Python怎样给Excel 2007版以上的xlsx文件追加数据
背景
Python中,xlrd主要用来读取excel文件, xlwt主要用来写文件,本文主要介绍打开已经存在的excel的xls文件,然后在最后新的一行的数据。要用到xlutils包,它依赖于前两个包。
折腾过程
1.找到了参考资料:
writing to existing workbook using xlwt
其实是没有直接实现:
打开已有的excel文件,然后在文件最后写入,添加新数据
的函数的。
只不过,可以利用:
Working with Excel Files in Python
中的库,组合实现。
2.writing to existing workbook using xlwt
给出了示例代码:
?
rom xlutils.importfromxlrdimportopen__ROW=297 # 0 based (subtract 1 from excel row number)col_age_november=1col_summer1=2col_fall1=3rb=open_workbook(file_path,formatting_info=True)r_sheet=rb.sheet_by_index(0)# read only to introspect the filewb=(rb)# a writable (I can't read values out of this, only write to it)w_sheet=wb.get_sheet(0)# the sheet to write to within the writable forrow_indexinrange(START_ROW, r_sheet.nrows):age_nov=r_sheet.cell(row_index, col_age_november).valueifage_nov==3:#If 3, then Combo I 3-4 year old for both summer1 and fall1w_sheet.write(row_index, col_summer1,'Combo I 3-4 year old')w_sheet.write(row_index, col_fall1,'Combo I 3-4 year old')wb.save(file_path+'.out' + os.path.splitext(file_path)[-1])3. 刚又看到,有更简洁的代码:
?
1234fromxlutils.importw=('book1.xls')w.get_sheet(0).write(0,0,"foo")w.save('book2.xls')4.现在打算去试试。
先去安装xlrd:
【记录】Python中安装xlrd模块
6.再去安装xlutils:
【记录】Python中安装可以读写excel的xls文件的xlutils模块(需依赖于xlrd和xlwt)
7.接着可以去写代码了。
8.先是:
【已解决】Python中使用xlutils.出错:AttributeError: ‘mole’ object has no attribute ‘’
9.后是:
【已解决】Python中使用xlutils的出错:AttributeError: ‘str’ object has no attribute ‘datemode’
10.后来是用如下代码:
?
;importxlrd;#import xlutils;fromxlutils.import;#init xls file#styleBlueBkg= xlwt.easyxf('pattern: pattern solid, fore_colour sky_blue;');#styleBold = xlwt.easyxf('font: bold on');styleBoldRed=xlwt.easyxf('font: color-index red, bold on');headerStyle=styleBoldRed;wb=xlwt.Workbook();ws=wb.add_sheet(gConst['xls']['sheetName']);ws.write(0,0,"Header", headerStyle);ws.write(0,1,"CatalogNumber", headerStyle);ws.write(0,2,"PartNumber", headerStyle);wb.save(gConst['xls']['fileName']);#open existed xls file#newWb = xlutils.(gConst['xls']['fileName']);#newWb = (gConst['xls']['fileName']);oldWb=xlrd.open_workbook(gConst['xls']['fileName']);printoldWb;#<xlrd.book.Book object at 0x000000000315C940>newWb=(oldWb);printnewWb;#<xlwt.Workbook.Workbook object at 0x000000000315F470>newWs=newWb.get_sheet(0);newWs.write(1,0,"value1");newWs.write(1,1,"value2");newWs.write(1,2,"value3");print"write new values ok";newWb.save(gConst['xls']['fileName']);print"save with same name ok";实现了,打开,刚刚保存的,已经存在的xls文件,
然后写入新数据的目的。
但是有个缺点,
第一次保存时的,带格式(标题内容为红色粗体)的内容:
重新写入新数据,再保存时,却丢失了之前的格式(标题没了红色粗体了):
11.后来还是参考:
writing to existing workbook using xlwt
中的那个标准答案,在用xlrd.open_workbook时,添加对应的参数formatting_info=True,就可以保留原有格式了。
完整代码:
?
;importxlrd;#import xlutils;fromxlutils.import;#init xls file#styleBlueBkg= xlwt.easyxf('pattern: pattern solid, fore_colour sky_blue;');#styleBold = xlwt.easyxf('font: bold on');styleBoldRed=xlwt.easyxf('font: color-index red, bold on');headerStyle=styleBoldRed;wb=xlwt.Workbook();ws=wb.add_sheet(gConst['xls']['sheetName']);ws.write(0,0,"Header", headerStyle);ws.write(0,1,"CatalogNumber", headerStyle);ws.write(0,2,"PartNumber", headerStyle);wb.save(gConst['xls']['fileName']);#open existed xls file#newWb = xlutils.(gConst['xls']['fileName']);#newWb = (gConst['xls']['fileName']);oldWb=xlrd.open_workbook(gConst['xls']['fileName'], formatting_info=True);printoldWb;#<xlrd.book.Book object at 0x000000000315C940>newWb=(oldWb);printnewWb;#<xlwt.Workbook.Workbook object at 0x000000000315F470>newWs=newWb.get_sheet(0);newWs.write(1,0,"value1");newWs.write(1,1,"value2");newWs.write(1,2,"value3");print"write new values ok";newWb.save(gConst['xls']['fileName']);print"save with same name ok";?
1最后重新写入的数据,就可以保留之前的格式了(标题为红色粗体):
总结
python中操作,本身就复杂的xls文件,还是有点小麻烦的。
想要,往已经存在的xls文件中,写入新的行,新的数据,对应的逻辑为:
用xlrd.open_workbook打开已有的xsl文件
注意添加参数formatting_info=True,得以保存之前数据的格式
然后用,from xlutils. import ;,之后的去从打开的xlrd的Book变量中,拷贝出一份,成为新的xlwt的Workbook变量
然后对于xlwt的Workbook变量,就是正常的:
通过get_sheet去获得对应的sheet
拿到sheet变量后,就可以往sheet中,写入新的数据
写完新数据后,最终save保存
- importxlwt;importxlrd;#import xlutils;fromxlutils.import;styleBoldRed=xlwt.easyxf('font: color-index red, bold on');headerStyle=styleBoldRed;wb=xlwt.Workbook();ws=wb.add_sheet(gConst['xls']['sheetName']);ws.write(0,0,"Header", headerStyle);ws.write(0,1,"CatalogNumber", headerStyle);ws.write(0,2,"PartNumber", headerStyle);wb.save(gConst['xls']['fileName']);#open existed xls file#newWb = xlutils.(gConst['xls']['fileName']);#newWb = (gConst['xls']['fileName']);oldWb=xlrd.open_workbook(gConst['xls']['fileName'], formatting_info=True);printoldWb;#<xlrd.book.Book object at 0x000000000315C940>newWb=(oldWb);printnewWb;#<xlwt.Workbook.Workbook object at 0x000000000315F470>newWs=newWb.get_sheet(0);newWs.write(1,0,"value1");newWs.write(1,1,"value2");newWs.write(1,2,"value3");print"write new values ok";newWb.save(gConst['xls']['fileName']);print"save with same name ok";
相关完整代码为:
?
2324252627289. Python的文件输入输出,如何追加内容,读取内容
用a+方式打开可以追加和读取
10. python 如何先清除文件内容,再追加写入
顺序文件不能直接再前面追加写入,可按下列步骤,利用下述步骤来实现1 创建一个新的文件。2 写入要追加的数据3从原文件中读取数据,追加写入新文件中4 删除原文件。5 重新命名新文件为老文件名。