删除txt文件中某些行中的结束/尾随逗号

2024-05-16 08:17:57 发布

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

我已经在这个网站上尝试和搜索了,但是我找不到一个适合我的问题的好的解决方案。 我有一个很大的txt文件。在txt文件中,有些行以,(逗号)结尾。我想去掉结尾的逗号

我的示例文件:

TYPE,4.0,
ID,ZBC173,
ROW1,51.977,
ROW2,0,
ROW3,0,
ROW4,2,
81.00,-4.42,1.0
114.00,-1.67,1.0
ROW7,0,
ROW8,3.696,
ROW9,7,
113.9996969,-1.67,0.7
121.500409,0,0.7
127.9995187,0.066,0.9
129.4998186,0.285,0.9
134.4992436,1.779,1.0
145.9999685,2.144,1.0
153.2586833,3.696,1.0

我的代码:

import os
file=open(r'C:\Users\ZBC173.txt','r')
target=open(r'C:\Users\ZBC173_no_comma.csv','w')
states = [line.strip().split(':')[-1] for line in file.readlines()]
target.write('\n'.join(states))
target.close()

我的输出:

TYPE,4.0
ID,ZBC173
ROW1,51.977
ROW2,0
ROW3,0
ROW4,2
81.00,-4.42
114.00,-1.67
ROW7,0
ROW8,3.696
ROW9,7
113.9996969,-1.67
121.500409,0
127.9995187,0.066
129.4998186,0.285
134.4992436,1.779
145.9999685,2.144
153.2586833,3.696

在我的输出中,我丢失了一些数据。我怎样才能避免这种情况?谢谢你的支持。我是python代码的初学者


Tags: 文件txtidtargettype结尾row1row2
2条回答

使用内置的rstrip函数:

file=open(r'C:\Users\ZBC173.txt','r')
target=open(r'C:\Users\ZBC173_no_comma.csv','w')
for line in file:
    target.write(line[:-1].rstrip(',') + "\n")

file.close()
target.close()

您可以使用此上下文管理器:

with open(r'C:\Users\ZBC173.txt','r') as file,open(r'C:\Users\ZBC173_no_comma.csv','w') as target:
    target.write(file.read().replace(',\n','\n'))

如果要将文件夹中的所有文本文件存储到不同的csv文件中:

from glob import glob

for f in glob("*.txt"):
    with open(f,'r') as file,open(f"C:\\Users\\Folder\\{f.replace('.txt','.csv')}",'w') as target:
        target.write(file.read().replace(',\n','\n'))

相关问题 更多 >