Как записать и добавить данные в CSV-файл и сохранить его в списке - PullRequest
0 голосов
/ 25 октября 2018

Я сделал CSV-файл в самом коде Python и собираюсь добавить в него следующие данные, но ошибка приходит

io.UnsupportedOperation: not readable 

Я пробовал код:

df.to_csv('timepass.csv', index=False)
with open(r'timepass.csv', 'a') as f:
       writer = csv.reader(f)
       your_list = list(writer)
       print(your_list)

хочудобавить следующие данные и сохранить в том же файле CSV.так что CSV-файл, содержащий как предыдущие, так и текущие данные.поэтому, пожалуйста, помогите мне узнать .. Заранее спасибо ...

Ответы [ 4 ]

0 голосов
/ 25 октября 2018

Пожалуйста, отметьте this .

Вы можете использовать панд в Python для чтения CSV и записи CSV:

import pandas as pd 

df = pd.read_csv("csv file")

print(df)
0 голосов
/ 25 октября 2018

Это так просто, попробуйте это:

import pandas as pd

df = pd.read_excel("NSTT.xlsx","Sheet1")  #reading Excel 

print(df)    #Printing data frame 

df.to_excel("new.xlsx")    #Writing Dataframe into New Excel file 

Теперь, если вы хотите добавить данные в тот же файл, используйте

df.to_excel("new.xlsx","a")

И не нужно добавлять всписок, поскольку вы можете напрямую получить доступ к данным так же, как список с фреймом данных, только вы должны определить местоположение.

0 голосов
/ 25 октября 2018

вы можете использовать панды для быстрого добавления двух csv

import pandas as pd
dataframe1=pd.read_csv("a.csv")
dataframe2=pd.read_csv("b.csv")
dataframe1=dataframe1.append(dataframe2)
dataframe1=dataframe1.reset_index(drop=True)
dataframe1.to_csv("a.csv")
0 голосов
/ 25 октября 2018

Попробуйте:

with open(r'timepass.csv', 'r') as f:
    reader = list(csv.reader(f))

print(reader)

Здесь вы открываете свой файл как r, что означает только чтение, и назначаете содержимое списка reader с помощью list(csv.reader(f)).Ваш предыдущий код a открывает файл для добавления только в том случае, если в документации это описано как:

'a' открывает файл для добавления;любые данные, записанные в файл, автоматически добавляются в конец

и не поддерживают read().

И если вы хотите добавить данные в файл csv из другогосписок, используйте with open как a с методом writer.

with open('lake.csv','a') as f:
    csv.writer(f,[1,2,3]) #dummy list [1,2,3]

Или непосредственно из метода pandas.DataFrame.to_csv из вашего нового фрейма данных с header = False, чтобы не добавлять заголовки:

df.to_csv('timepass.csv', index=False)
df_new.to_csv(r'timepass.csv', mode='a', header=False) #once you have updated your dataframe, you can directly append it to the same csv file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...