1
def read_slice():

    openfile=open('slicefile1.txt','r')
    #savetofile=open('slicefile2.txt','w')


    lines = openfile.readlines()
    for line in lines:
        line.slice(',')[16].split('\t')
        print(line)

読み込んで解析したいファイル (正しい単語ですか?) の形式は

['05,21,34,37,38,01,06', '09,16,26,36,39,02,06', '03,10,18,31,37,02,04'].

形式で返したい(実際には別のファイルに書き込みます)

05,21,34,37,38 tab 01,06
09,16,26,36,39 tab 02,06

リストと文字列をまだ処理できないので、私は明らかに愚かです。この関数は、文字列のスライスが使用できないというエラー メソッドを返します。よかったら助けてください

4

2 に答える 2

3

[start:stop:step]Python 文字列のスライスとは、表記法を使用することを指します。あなたの場合、単に使用できます:

'\t'.join((line[:14], line[15:]))

行を分割し、タブで再結合するには:

>>> line = '05,21,34,37,38,01,06'
>>> line[:14]
'05,21,34,37,38'
>>> line[15:]
'01,06'
>>> '\t'.join((line[:14], line[15:]))
'05,21,34,37,38\t01,06'
于 2013-02-03T12:28:21.517 に答える
0

Martijn の回答よりも少し複雑ですが、書式設定や区切り記号などの変更が発生した場合は、おそらくより柔軟になります。

import csv

with open('yourfile') as fin, open('output.csv', 'wb') as fout:
    csvin = csv.reader(fin)
    csvout = csv.writer(fout, delimiter='\t')
    for row in csvin:
        csvout.writerow( [','.join(row[:5], ','.join(row[5:])] )
于 2013-02-03T12:29:50.490 に答える