인문지식 처리와 프로그래밍2020 4.09

soook
이동: 둘러보기, 검색

PARSing

Parsing은 기본이다!!!


parser.py(한송이 국화꽃... 파싱프로그램)

#!/usr/bin/python
#-*- coding: utf-8 -*-

import sys
import webbrowser

def writeHtml( template, output, table, lines ):
	
	f = open( template, 'r', encoding='utf-8')
	h = open( output, 'w+', encoding='utf-8')	
	
	while 1:
		line = f.readline()
		if not line: break
		if( '#YourData' == line.strip() ):
			h.write( '\t<table>\n' )
			for m in range(lines):
				h.write( '\t\t<tr>' )		
				for n in range(10):
					h.write( '<td>{0}</td>'.format( table[m][n] ) )
				h.write( '</tr>\n' )
			h.write( '\t</table>\n' )
		else:
			h.write( '{0}\n'.format( line ) )

	h.close()
	f.close()

def main(): #

	try:
		filename = sys.argv[1]
	except:
		return
	
	list = filename+'.lst'
	output = filename+'.htm'
	
	f = open( list, 'r', encoding='utf-8')
	
	row = []
	lines = 0
	
	while 1:
		text = f.readline()
		if not text: break
		
		row.append( [[] for i in range(10)] )
		parsed = text.split(sep=' ')
		
		j = 0 
		for x in parsed: 
			if( j < 10 ): 
				row[lines][j] = x.strip()
				j = j + 1
			
		lines = lines + 1
			
	f.close()
	
	writeHtml( 'templateTbs.htm', output, row, lines )
	webbrowser.open_new_tab( output )
	
main()



#!/usr/bin/python
#-*- coding: utf-8 -*-

import sys
import webbrowser

def writeHtml( template, output, table, lines ):
	
	f = open( template, 'r', encoding='utf-8')
	h = open( output, 'w+', encoding='utf-8')	
	
	while 1:
		line = f.readline()
		if not line: break
		if( '#YourData' == line.strip() ):
			h.write( '\t<table>\n' )
			for m in range(lines):
				h.write( '\t\t<tr>' )		
				for n in range(10):
					h.write( '<td>{0}</td>'.format( table[m][n] ) )
				h.write( '</tr>\n' )
			h.write( '\t</table>\n' )
		else:
			h.write( '{0}\n'.format( line ) )

	h.close()
	f.close()

def main(): #

	try:
		filename = sys.argv[1]
	except:
		return
	
	list = filename+'.lst'
	output = filename+'.htm'
	
	f = open( list, 'r', encoding='utf-8')
	
	row = []
	lines = 0
	
	while 1:
		text = f.readline()
		if not text: break
		
		row.append( [[] for i in range(10)] )
		parsed = text.split(sep=' ')
		
		j = 0 
		for x in parsed: 
			if( j < 10 ): 
				row[lines][j] = x.strip()
				j = j + 1
			
		lines = lines + 1
			
	f.close()
	
	writeHtml( 'templateTbs.htm', output, row, lines )
	webbrowser.open_new_tab( output )
	
main()



C:\Users\soook>cd desktop
C:\Users\soook\Desktop>cd seven
C:\Users\soook\Desktop\seven>python parser.py seven
  • 경로>python ......py[파이썬파일] seven[대상lst파일]
  • 주의 C:\Users\soook\Desktop\seven>python parser.py seven.lst 처럼 .lst는 필요없다!!!