Форум сайта python.su
Мне нужно открыть текстовый файл из командной строки в котоой помещена матрица(она может быть любого размера).
Как то так:
/ home / myuser / папка$ python3 programma . py < матрица . txt
Я знаю что можно открыть его через строку используя библиотеку sys через читание argv. Но как можно сделать это не используя её? Спасибо заранее
Офлайн
Lena13_08В данном случае файл передается не как аргумент, а направляеться в stdin процесса.
Как то так:
/home/myuser/папка$ python3 programma.py < матрица.txt
import sys for line in sys.stdin: print(line)
[code python][/code]
Отредактировано PEHDOM (Окт. 24, 2017 15:34:24)
Офлайн
PEHDOMНам на курсе дали задание в котором мы дожлны сделать это без sys, поэтому способ.существует точно, но я не могу найти какой
Офлайн
argparse не подойдёт? https://docs.python.org/3.3/library/argparse.html
Офлайн
Lena13_08input() берёт данные из stdin. Надо только в цикле его запустить.
поэтому способ.существует точно, но я не могу найти какой
#!/usr/bin/env python3
i = 0
while True:
i += 1
try:
s = input()
except EOFError:
break
print('line #{:03} {}'.format(i, s))
[guest@localhost py]$ ./t.py < t.py
line #001 #!/usr/bin/env python3
line #002
line #003 i = 0
line #004 while True:
line #005 i += 1
line #006 try:
line #007 s = input()
line #008 except EOFError:
line #009 break
line #010 print('line #{:03} {}'.format(i, s))
[guest@localhost py]$
Отредактировано py.user.next (Окт. 24, 2017 16:20:17)
Офлайн
Lena13_08а-а-а-, тогда инпут умеет читать из стдина, както так
Нам на курсе дали задание в котором мы дожлны сделать это без sys, поэтому способ.существует точно, но я не могу найти какой
while True: try: text = input() except EOFError: break else: print(text.encode('cp1251')) python input_from_stdint.py < input_from_stdint.py b'\xef\xbb\xbfwhile True:' b' try:' b' text = input()' b' except EOFError:' b' break' b' else:' b" print(text.encode('cp1251'))"
[code python][/code]
Отредактировано PEHDOM (Окт. 24, 2017 16:14:52)
Офлайн
напиши в консоли:
echo (matrix.txt > proga.py)
Офлайн