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
  Request Delay pheadrus 1 198 Nov-25-2021, 08:51 PM
Last Post: snippsat
  matplotlib x axis range goes over the set range Pedroski55 5 268 Nov-21-2021, 08:40 AM
Last Post: paul18fr
  |SOLVED] Glob JPGs, read EXIF, update file timestamp? Winfried 5 435 Oct-21-2021, 03:29 AM
Last Post: buran
  [SOLVED] Read text file from some point till EOF? Winfried 1 260 Oct-10-2021, 10:29 PM
Last Post: Winfried
  adding a delay on end Daz2264 6 506 Sep-29-2021, 02:57 PM
Last Post: deanhystad
  Read csv file through PyCharm kimx0961 3 879 Aug-01-2021, 07:05 PM
Last Post: perfringo
  Why it does not print(file.read()) Rejaul84 1 639 Jul-01-2021, 10:37 PM
Last Post: bowlofred
  Read and write active Excel file euras 4 747 Jun-29-2021, 11:16 PM
Last Post: Pedroski55
  [Solved] Trying to read specific lines from a file Laplace12 7 1,174 Jun-21-2021, 11:15 AM
Last Post: Laplace12
  [Solved] Using readlines to read data file and sum columns Laplace12 4 775 Jun-16-2021, 12:46 PM
Last Post: Laplace12

Forum Jump:

User Panel Messages

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