在PythonCSV阅读器中除了最后一行之外的所有行中添加逗号?

2024-09-29 17:17:23 发布

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

我需要在csv文件的所有行中添加逗号标记,python中的最后一行除外。我试过了,但最后一行也加了逗号。如何丢弃csv文件最后一行的逗号标记?在

我正在阅读csv文件,它有将近3000行和2列(我将每个合并的行(对于2列)附加在反逗号标记中。我已经试过了,但还是装了。任何帮助我们都深表感激。在

代码:

import csv, string, nltk
def process_rs():
    with open('rs1.csv') as f:
       reader = csv.reader(f)
       next(reader, None)
       global raw_text
       with open('raw_reqs.txt', 'w', encoding = 'utf-8') as f1:
          for row in reader:
              raw_text = ('"'+' '.join(row)+'.'+'"'+', ')
              f1.write(raw_text)
              print(raw_text)
process_rs()

Tags: 文件csvtext标记rawaswithopen
3条回答
import pandas as pd

df = pd.read_csv('file.csv')
df[:-1].to_csv('newFile', sep = ',')
#adding the last row without separator:
with open('newFile', 'a') as f:
    df[-1:].to_csv(f,header=f.tell()==0, sep = ' ')

您可以阅读更多关于方法选项https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html

我建议阅读所有行,丢弃最后一行,然后解析其余行,如下所示:

import numpy as np

with open('file.csv', 'r') as fid:
    lines = fid.readlines()

# discard the last row:
lines = lines[:-1]

# parse the rest into an array
a     = np.array( [line.strip('\n').split(',')  for line in lines], dtype=float )

您可以将for循环更改为如下所示:

with open('raw_reqs.txt', 'w', encoding = 'utf-8') as f1:
    rows = ('"{}."'.format(' '.join(row)) for row in reader)
    raw_text = ', '.join(rows)
    f1.write(raw_text)

请注意,rows正在获取一个生成器,这意味着它只能迭代一次。将其更改为列表理解,可能需要多次使用rows内容。在

相关问题 更多 >

    热门问题