gpt4 book ai didi

python - 如何用Python编辑*.txt或*.dat文件信息?

转载 作者:行者123 更新时间:2023-11-28 21:50:06 29 4
gpt4 key购买 nike

我是 Python 的初学者,遇到下一个“问题”。如果你能帮助我,我会很高兴)

我有一个 *.dat 文件(我们将其命名为 file-1,第一行只是一个标题,我只在此处使用它来标记列)看起来像:

1   2   3       4   5   6

6 5 -1000 "" "" ""
6 5 -1000 "" "" ""

6 5 -1000 "" "" ""

6 5 -1000 "" "" ""
6 5 -1000 "" "" ""
6 5 -1000 "" "" ""
6 5 -1000 "" "" ""

我需要它像 (file-1 (converted)):

6   5   1   -1000
6 5 1 -1000
6 5 2 -1000
6 5 3 -1000
6 5 3 -1000
6 5 3 -1000
6 5 3 -1000

因此,file-1 有 9 行(7 行有信息,2 行空)和 6 列,我必须执行下一步:

  1. 删除 file-1 中的最后 3 列。
  2. 在第 2 列和第 3 列之间添加 1 个新列。
  3. 此新列的值应在通过空行后增加 1 个单位(如“+= 1”)。
  4. 删除所有空行。结果表示为“文件 1(已转换)”。

我试过这样做但卡住了。目前我处于以下水平:

import sys
import csv

with open("file-1.dat", "r", newline="") as f:
sys.stdout = open('%s2 (converted).txt' % f.name, 'a')
incsv = csv.reader(f, delimiter="\t")
for row in incsv:
if len(row) == 6:
i = 0
row = row[0:3]
row.insert(2, i)
print(row)

它看起来像:

['6', '5', 0, '-1000']
['6', '5', 0, '-1000']

['6', '5', 0, '-1000']

['6', '5', 0, '-1000']
['6', '5', 0, '-1000']
['6', '5', 0, '-1000']
['6', '5', 0, '-1000']

我现在不知道如何将 0 更改为 1 和 2 等等,所以它可能是这样的:

['6', '5', 0, '-1000']
['6', '5', 0, '-1000']

['6', '5', 1, '-1000']

['6', '5', 2, '-1000']
['6', '5', 2, '-1000']
['6', '5', 2, '-1000']
['6', '5', 2, '-1000']

结果应该类似于“file-1(已转换)”文件。

附言所有的例子都是简化的,真实文件有很多行,我不知道空行出现在哪里。

附言抱歉发了这么长的帖子,希望这是有道理的。询问,建议 - 我真的很高兴看到其他意见)谢谢。

最佳答案

似乎你快到了,你只是一直插入 i=0 而不是空行的计数,尝试类似的东西:

with open("file-1.dat", "r", newline="") as f:
sys.stdout = open('%s2 (converted).txt' % f.name, 'a')
incsv = csv.reader(f, delimiter="\t")
empties = 0 # init empty row counter
for row in incsv:
if len(row) == 6:
row = row[0:3]
row.insert(2, empties) # insert number of empty rows
print(row)
else:
empties += 1 # if row is empty, increase counter

关于python - 如何用Python编辑*.txt或*.dat文件信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32455698/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com