python - Copy specific lines from multiple text files to an excel file -


i have many 1500 text files , want copy 5 lines every text file, line 4,5,9,14 , 32. want make columns of these files in excel sheet 1 below other, of 1500 text files. have figured out code takes in 1 txt file copies data rows. appreciated. here code:

import csv import xlwt  import os import sys  # input file in same location script file: inputfilename = os.path.join(os.path.dirname(sys.argv[0]),  'c:/path/filename.txt') # strip off path basefilename = os.path.basename(inputfilename) # strip off extension basefilename_noext = os.path.splitext(basefilename)[0] # path of input file target output path targetoutputpath = os.path.dirname(inputfilename) # generate output filename outputfilename = os.path.join(targetoutputpath, basefilename_noext + '.xls')  # create workbook object workbook = xlwt.workbook() # add sheet object worksheet = workbook.add_sheet(basefilename_noext, cell_overwrite_ok=true)  # csv reader object set reading input file tab  delimiters datareader = csv.reader(open(inputfilename, 'rb'),                     delimiter='\t', quotechar='"')  # process file , output excel sheet  rowno, row in enumerate(datareader):   colno, colitem in enumerate(row):       worksheet.write(rowno, colno, colitem)   # write output file.  workbook.save(outputfilename)  # open via operating system (will work on windows) # on linux/unix use subprocess.popen(['xdg-open', filename]) os.startfile(outputfilename) 

you first need put of required text files in current folder, glob.glob('*.txt') used list of these filenames. each text file, read files in using readlines() , extract required lines using itemgetter(). each file, create new row in output worksheet , write each line different column entry.

import xlwt import glob import operator  # create workbook object wb = xlwt.workbook() # # add sheet object ws = wb.add_sheet('sheet1', cell_overwrite_ok=true) rowy = 0  text_filename in glob.glob('*.txt'):     open(text_filename) f_input:         try:             lines = [line.strip() line in operator.itemgetter(4, 5, 9, 14, 32)(f_input.readlines())]         except indexerror e:             print "'{}' short".format(text_filename)             lines = []      # output excel sheet     colno, colitem in enumerate(lines):         ws.write(rowy, colno, colitem)      rowy += 1  # write output file. wb.save('output.xls') 

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -