2017-01-23 7 views
-1

私はアスキー文字(百万行)の巨大なファイルを持っています。私は.csvファイルに変換します。最初の列にはm秒の文字があり、n文字になります。number of columnsnumber of character in respective colは固定されます。これはファイルのすべての行に適用されます。そして、はい、ファイル内の行には、[a-z] [A-Z]と[0-9]だけが含まれます。 (特別な文字ない、includindスペース)p、q、r、sの後にCOMMAを挿入します。 charの複数行ファイル

+2

私はこれはコードレビューではありませんhttp://codereview.stackexchange.com –

+0

に掲示しなければならないので、オフトピックとして、この質問を閉じるために投票しています。.. 。コードが私のアプローチを示すために掲示されています。投稿されたコードとは何の関係もない同じことをするより良い方法を提案することができます – juggernaut1996

+1

これは**作業コード**であれば改善できると思います。 se]はそれのための場所です。そうでない場合は、問題を明確にしてください。 – jonrsharpe

答えて

2
import csv 

numCols = int(raw_input("How many columns does your data have? ")) 
colWidths = [int(raw_input("How many characters in column %d " %i)) for i in xrange(1, numCols+1)] 

infilepath = raw_input("Enter the file name: ") 
outfilepath = infilepath.rsplit('.',1)[0]+'.csv' 

with open(infilepath) as infile, open(outfilepath, 'w') as fout: 
    outfile = csv.writer(fout) 
    for line in infile: 
     top = 0 
     row = [] 
     for col in colWidths: 
      row.append(line[top:top+col]) 
      top += col 
     outfile.writerow(row) 
関連する問題