User Tools

Site Tools


files:python3:output_tests

Tests make use of timeit to ensure we are only measuring print() and write(). 1)

print.py
import timeit
import sys
 
setup = """
from sys import stdin
 
num_lines = int(input())
lines = stdin.readlines()
 
 
def myFun(stuff):
    for line in stuff:
        print(line)
"""
 
print(timeit.timeit("myFun(lines)", number=5, setup=setup), file=sys.stderr)
write.py
import timeit
import sys
 
setup = """
from sys import stdin, stdout
 
num_lines = int(input())
 
lines = stdin.readlines()
 
def myFun(stuff):
    for line in stuff:
        stdout.write(line)
"""
 
print(timeit.timeit("myFun(lines)",number=5,setup=setup), file=sys.stderr)
read_test.py
from sys import argv
from random import *
from string import *
 
for i in range(int(argv[1])):
    print(''.join(choice(ascii_lowercase + ' ') for _ in range(int(argv[2]))))

2)

1)
Not the overhead of loading data into memory
2)
python3 read_test.py lines length > out.txt, where lines is the number of lines and length is the number of characters per line.
files/python3/output_tests.txt · Last modified: 2018/08/15 16:38 by kericson