Librería fileinput (itera sobre lines de multiples streams)#
Última modificación: Mayo 14, 2022
[1]:
import fileinput
import glob
[2]:
!mkdir /tmp/demo
mkdir: cannot create directory ‘/tmp/demo’: File exists
[3]:
%%writefile /tmp/demo/text0.txt
line 0 0
line 0 1
line 0 2
line 0 3
Overwriting /tmp/demo/text0.txt
[4]:
%%writefile /tmp/demo/text1.txt
line 1 0
line 1 1
line 1 2
Overwriting /tmp/demo/text1.txt
[5]:
%%writefile /tmp/demo/text2.txt
line 2 0
line 2 1
Overwriting /tmp/demo/text2.txt
[6]:
files = glob.glob('/tmp/demo/*.txt')
files
[6]:
['/tmp/demo/text1.txt', '/tmp/demo/text0.txt', '/tmp/demo/text2.txt']
[7]:
print('filename file line file text')
print(' descriptor no line no')
print('------------------------------------------------------------')
with fileinput.input(files=files) as f:
for line in f:
line = line.replace('\n', '')
print(
f"{f.filename()} {f.fileno()} {f.lineno()} {f.filelineno()} -> {line}"
)
filename file line file text
descriptor no line no
------------------------------------------------------------
/tmp/demo/text1.txt 55 1 1 -> line 1 0
/tmp/demo/text1.txt 55 2 2 -> line 1 1
/tmp/demo/text1.txt 55 3 3 -> line 1 2
/tmp/demo/text0.txt 55 4 1 -> line 0 0
/tmp/demo/text0.txt 55 5 2 -> line 0 1
/tmp/demo/text0.txt 55 6 3 -> line 0 2
/tmp/demo/text0.txt 55 7 4 -> line 0 3
/tmp/demo/text2.txt 55 8 1 -> line 2 0
/tmp/demo/text2.txt 55 9 2 -> line 2 1