【问题标题】:Inserting comma at predetermined positions in txt file在txt文件的预定位置插入逗号
【发布时间】:2018-09-19 10:12:26
【问题描述】:

我有一个文件如下:

10030004
10300048
10919013

这是一个包含数据的txt 文件,每一行都是一个新的观察。该文件随附一份文件,说明例如:

变量:A 开始:1 长度:3

变量:B 开始:4 长度:2

变量:C 开始:6 长度:3

我想包含分隔符来区分不同的变量。此外,我想包括一个标题。假设我想使用, 作为分隔符。有谁知道如何进行?

好的,为了完整起见:

inpath = 'test.txt'
outpath = 'output.txt'

head = "A,B,C"
Astart = 1
Alength = 3
Bstart = 4
Blength = 2
Cstart = 6
Clength = 3


with open(inpath, 'r') as input_f:
    with open(outpath, 'w') as output_f:
        print(head, file = output_f)
        for line in input_f:
            print(line[Astart-1:Astart-1+Alength]+','+line[Bstart-1:Bstart-1+Blength]+','+line[Cstart-1:Cstart-1+Clength], file = output_f)

感谢迄今为止帮助过我的所有人。

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 我尝试了 Vijay 的解决方案。它做我想要的。现在,我想将它打印到一个新文件中。我想这部分适用于 Shakeel 的部分。但是他误解了我的意思。每列都是一个变量。并且每一列都有一个预定义的长度。

标签: python-3.x file-processing text-manipulation


【解决方案1】:

尝试如下切片:

a = '10030004'

打印a[Astart-1:Astart-1+Alength]+','+a[Bstart-1:Bstart-1+Blength]+','+a[Cstart-1:Cstart-1+Clength]

在你的情况下:

Astart = 1, Alength = 3, Bstart = 4, Blength = 2, Cstart = 6, Clength = 3

【讨论】:

    【解决方案2】:

    如果你想用一些分隔符(,)分隔每一行(因为每一行都有一个变量),然后使用它。

    with open('input.txt', 'r') as input_f: with open('output.txt', 'w') as output_f: for line in input_f: line = line.rstrip('\n') + ',' print(line, file=output_f)

    【讨论】:

      猜你喜欢
      • 2011-08-20
      • 1970-01-01
      • 2021-07-25
      • 2014-12-31
      • 2013-05-21
      • 1970-01-01
      • 2013-05-25
      • 2010-11-22
      相关资源
      最近更新 更多