Python Forum
How to read CSV file one row at the time in a range and some delay in between
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to read CSV file one row at the time in a range and some delay in between
#1
Hello, I am new to Python,
I want to read a CSV file, but have some problems, hopefully, get some help,
I have a one-column data on CSV file since it is just one column data I am not sure if it does make any difference using a text file or CSV file,

anyhow I want to get each row of data from a range ( e.g. row 5 to row 14) one by one with some delay in between,
but with the code, I have there some problems.
  1. It prints out all rows (given range) at once, the timer does not work for the delay in between
  2. The output wrapps in '' and [],
Here is my code,
import csv
csvfile = open('my_file.csv','r')
csvFileArray = []
for row in csv.reader(csvfile):
     csvFileArray.append(row)
print(csvFileArray[5:11])
time.sleep(5)
I want to insert this row of data in another function, but for the purpose of testing this code I use print function.
I am grateful for your help to make this work.

Here is the output data:
Output:
[['164904789674679676'], ['771077704416674839'], ['844493667436017'], ['78777970164111066'], ['776316316771378360'], ['764687068316646778']]
and here is how the data is in CSV file:
Output:
644370674307387060 3769616199338017 10836877341311643 707147608047067661 164904789674679676 771077704416674839 844493667436017 78777970164111066 776316316771378360 764687068316646778 660179811186804894
Reply
#2
Something like this?

import time

with open('one_row_at_time.csv', 'r') as f:
    for i, line in enumerate(f, start=1):
        if i in range(5, 15):       # rows 5-14
            print(line)             # use line.rstrip() to handle newline if needed
            time.sleep(2)           
One should break out of loop if needed lines are processed, but it should be trivial to add/refactor code. There is also itertools module with suitable functions.

As you probably know, slice will not raise any error if indices are out-of-bounds. So you can't be sure of number of lines (if any) printed/returned:

>>> 'abc'[2:20]
'c'
>>> 'abc'[5:20]
''
greenpine likes this post
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#3
Thanks for the code,
I tried it and it works. Smile
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Read csv file through PyCharm kimx0961 3 418 Aug-01-2021, 07:05 PM
Last Post: perfringo
  Why it does not print(file.read()) Rejaul84 1 393 Jul-01-2021, 10:37 PM
Last Post: bowlofred
  Read and write active Excel file euras 4 522 Jun-29-2021, 11:16 PM
Last Post: Pedroski55
  [Solved] Trying to read specific lines from a file Laplace12 7 757 Jun-21-2021, 11:15 AM
Last Post: Laplace12
  [Solved] Using readlines to read data file and sum columns Laplace12 4 502 Jun-16-2021, 12:46 PM
Last Post: Laplace12
  Read file, reformat and write new file bryanmartin113 1 509 Jun-08-2021, 09:27 PM
Last Post: Larz60+
  Check last time file was accessed Pavel_47 4 648 Jun-01-2021, 05:47 PM
Last Post: Yoriz
  find the header location in a .bin file without reading the whole file at a time SANJIB 0 570 Mar-05-2021, 04:08 PM
Last Post: SANJIB
  python delay without interrupt the whole code Nick_tkinter 4 812 Feb-22-2021, 10:51 PM
Last Post: nilamo
  Read/Write binary file deanhystad 3 922 Feb-01-2021, 10:29 AM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020