Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save RaMSFT/e390c75fefcc043324401355219df11a to your computer and use it in GitHub Desktop.

Select an option

Save RaMSFT/e390c75fefcc043324401355219df11a to your computer and use it in GitHub Desktop.
import pandas as pd
import timeit
def count_lines_enumrate_list(file_name):
fp = open(file_name,'r')
line_count = list(enumerate(fp))[-1][0]
return line_count
def count_lines_enumrate_loop(file_name):
fp = open(file_name,'r')
for line_count, line in enumerate(fp):
pass
return line_count
def count_lines_sum(file_name):
fp = open(file_name,'r')
line_count = sum(1 for line in fp)
return line_count
def count_lines_readlines(file_name):
fp = open(file_name,'r')
line_count = len(fp.readlines())
return line_count
def count_lines_traditional(file_name):
fp = open(file_name,'r')
line_count = 0
for line in fp:
line_count += 1
return line_count
def count_lines_pandas(file_name):
df = pd.read_csv(file_name, header=0)
return len(df.index)
source_file = ['flights_580mb.csv','flights_1400mb.csv','flights_2100mb.csv']
functions_list = ['count_lines_enumrate_loop','count_lines_enumrate_list','count_lines_sum' ,'count_lines_readlines','count_lines_traditional','count_lines_pandas']
for file_name in source_file:
for function_name in functions_list:
startime = timeit.default_timer()
lines = eval(f"{function_name}('{file_name}')")
print(f"{function_name}\t{file_name}\t{lines}\t{timeit.default_timer() - startime}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment