Python从读取文件中分割行,并在另一个文件中使用另一种格式写入

时间:2016-10-17 18:57:22

标签: python csv split

我从一个文件中读取行,该文件包含两个具有该样式值的列:

      100.E-03             5.65581E-06
      110.E-03            11.222E-06  
      120.E-03            18.3487E-06 
      130.E-03            15.6892E-06 

我需要在antoher文件中将它们写为:

          100.E-03       ,      5.65581E-06
          110.E-03       ,     11.222E-06  
          120.E-03       ,     18.3487E-06 
          130.E-03       ,     15.6892E-06 

我可以分手吗?我可以定义空格,例如5个空格作为拆分变量吗?如果是,我如何选择分割部分以便按照我想要的方式编写它们: 我的脚本看起来像:

for k in files:
    print 'k =',k
    from  abaqus import session
    print k 
    with open("niffacc{k}.inp".format(k=k)) as f1:
       with open("niffacc_{k}.inp".format(k=k),"w") as f2:
            for line in itertools.islice(f1, 4, None):
                b = line.split("            ")
                #print "b:", b
                c = b[1]
                d = b[3] 
                f2.write('%s'%c + "," + '%s'%d)    
    #with open('VY_{k}'.format(k=k), 'a') as f1:
    #lines = f1.readlines()
    f2.close()
    f1.close()

我认为问题在于定义b,分裂线。通过将空格定义为拆分字符有什么问题吗?由于有很多空格,python是否存在问题,或者它是作为一组空格处理的? 是一个更好的解决方案转换csv文件中的文件然后回到txt文件?

2 个答案:

答案 0 :(得分:2)

我不确定你为什么要在列之间留下那么多空格,但你可以在空格上拆分:

with open('file1.txt') as f1, open('file2.txt', 'w') as f2:
    for line in f1:
        f2.write(line.split()[0] + ',' + line.split()[1] + '\n')

如果你真的想要一堆空格,那么只需使用:

f2.write(line.split()[0] + '    ,    ' + line.split()[1] + '\n')

答案 1 :(得分:1)

Chrome Developer tools会自动处理任意数量的空格。

split