Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 24, 2017 14:19:35

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как прочитать файл из командной строки не используя библиотеки питона

Мне нужно открыть текстовый файл из командной строки в котоой помещена матрица(она может быть любого размера).
Как то так:
/ home / myuser / папка$ python3 programma . py < матрица . txt
Я знаю что можно открыть его через строку используя библиотеку sys через читание argv. Но как можно сделать это не используя её? Спасибо заранее

Офлайн

#2 Окт. 24, 2017 15:19:07

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как прочитать файл из командной строки не используя библиотеки питона

Lena13_08
Как то так:
/home/myuser/папка$ python3 programma.py < матрица.txt
В данном случае файл передается не как аргумент, а направляеться в stdin процесса.
Соответственно матрицу нужно брать из stdin, хотя для этого опять нужно подключать sys:

 import sys
for line in sys.stdin:
    print(line)



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Окт. 24, 2017 15:34:24)

Офлайн

#3 Окт. 24, 2017 15:53:17

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как прочитать файл из командной строки не используя библиотеки питона

PEHDOM
Нам на курсе дали задание в котором мы дожлны сделать это без sys, поэтому способ.существует точно, но я не могу найти какой

Офлайн

#4 Окт. 24, 2017 16:09:46

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2763
Репутация: +  185  -
Профиль   Отправить e-mail  

Как прочитать файл из командной строки не используя библиотеки питона

argparse не подойдёт? https://docs.python.org/3.3/library/argparse.html



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Окт. 24, 2017 16:12:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9897
Репутация: +  855  -
Профиль   Отправить e-mail  

Как прочитать файл из командной строки не используя библиотеки питона

Lena13_08
поэтому способ.существует точно, но я не могу найти какой
input() берёт данные из 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)

Офлайн

#6 Окт. 24, 2017 16:13:41

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как прочитать файл из командной строки не используя библиотеки питона

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'))"
я писал под вендой, под линем не нужно .encode('cp1251')



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Окт. 24, 2017 16:14:52)

Офлайн

#7 Окт. 28, 2017 14:05:01

python335
Зарегистрирован: 2016-10-19
Сообщения: 88
Репутация: +  -8  -
Профиль   Отправить e-mail  

Как прочитать файл из командной строки не используя библиотеки питона

напиши в консоли:

 echo (matrix.txt > proga.py)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version