[英]Python Combine 2 XLSX files
我有兩個XLSX文件需要合並。 它們都是Excel 2010文件(.xlsx),我所閱讀的內容都是以空格分隔的(我可以接受更正)。 這兩個文件將具有相同的行數,並且行將對齊; 例如row1,file1將對應於row1,file 2等等。文件具有很長的字段,因此為了簡單起見,我將顯示模擬數據。 第一個文件的格式為:
a 123 20 20141201
b 456 50 20141130
.....
第二個文件的格式為:
20141201
20141130
...
因此,我希望輸出為:
a 123 20 20141201 20141201
b 456 50 20141130 20141130
...
我的代碼在下面,但是似乎有2個問題:
首先,array3的輸出格式不正確:
'a 123 20 20141201 \t\r\n', '20141201\n',
'b 456 50 20141130 \t\r\n', '20141130\n',
....
如何正確地將它們串聯起來,以確保其他日期戳在制表符,換行符等之前(\\ t \\ r \\ n)?
其次,當我將此數組寫入輸出文件時,行是不一致的:
第一行的第一列中的所有內容都由分隔符(注意☺=白色方形符號,不確定為什么會顯示為笑臉嗎?):
col1 col2 col3 col4 col5
row1|a ☺ 123 ☺ 20 ☺ 20141201 ☺☺ 20141201
row2|b 456 50 20141130
row3|20141130
row4|c .........................
我的代碼在這里:
ins1 = open( "file1.xlsx", "r" )
array1 = []
for line in ins1:
array1.append(line)
ins1.close()
ins2 = open( "file2.xlsx", "r" )
array2 = []
for line in ins2:
array2.append(line)
ins2.close()
array3 = []
for i in range(0, len(array1)):
array3.append(array1[i])
array3.append(array2[i])
resultFile = open("output.xlsx",'wb')
wr = csv.writer(resultFile)
print array3
wr.writerow(array3)
resultFile.close()
抱歉,我對Python還是很陌生,所以也許以上並不是最好的方法。 我願意接受有關如何進行此操作的替代建議。 我看過Pandas,我相信它將使此任務更加容易,但是不幸的是,我無法安裝外部庫以排除該選項。 任何幫助深表感謝。
編輯:基於Serge的答案,這里是一個有效的解決方案:
ins1 = open( "file1.xlsx", "r" )
ins2 = open( "file2.xlsx", "r" )
outs = open("output.xlsx",'wb')
for line in ins1:
line = line.rstrip() + "\t" + next(ins2)
print line.rstrip()
outs.write(line)
ins1.close()
ins2.close()
outs.close()
假設所有文件都是用空格分隔的csv格式,那么以下簡化代碼就足夠了:
with open( "file1.xlsx", "r" ) as ins1, open( "file2.xlsx", "r" ) as ins2, \
open("output.xlsx",'wb') as resultfile :
for line in ins1:
line = line.rstrip() + " " + next(ins2)
print line.rstrip()
resultfile.write(line)
說明:
with
確保文件被正確關閉,任何可以在代碼中發生 output
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.