Python从文本fi切片和拆分数据

2024-09-30 03:22:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我显然很愚蠢,因为我仍然不能处理列表和字符串。函数提供一个字符串的错误方法切片不可用。如果你愿意请帮忙


Tags: 文件字符串txtreaddef格式lineslice
2条回答

python字符串中的切片是指使用^{} notation。在您的情况下,您可以简单地使用:

'\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'

比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:])] )

相关问题 更多 >

    热门问题