Добавить запятую во всех строках, кроме последней строки в Python CSV Reader? - PullRequest
0 голосов
/ 07 мая 2019

Мне нужно добавить запятую во всех строках CSV-файла, кроме последней строки в Python. Я пытался, но запятая также добавлена ​​в последнем ряду. Как удалить запятую в последнем ряду файла CSV?

Я читаю CSV-файл, содержащий почти 3000 строк и 2 столбца (я добавляю каждую объединенную строку (для 2 столбцов) в кавычки. Я пробовал, но st-rucking. Любая помощь очень важна.

Код:

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()

Ответы [ 3 ]

1 голос
/ 07 мая 2019

Вы можете изменить цикл 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 контент более одного раза.

1 голос
/ 07 мая 2019

Я бы порекомендовал прочитать все строки, отбросить последние, а затем проанализировать остальные, например:

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 )
1 голос
/ 07 мая 2019
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...