Уведомления

Группа в Telegram: @pythonsu

#1 Июль 6, 2017 23:33:38

cipeza
Зарегистрирован: 2017-07-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Считывание названия файла из командной строки Ubuntu и других Unix подобных систем

Есть часть кода:

  file_input = '/home/andrey/Рабочий стол/rand/test.txt'
amount = sum(1 for l in open(file_input, 'r')) 
Хотелось бы не писать каждый раз полный путь к файлу, и чтобы использовать файл с другим именем, не изменять код.
Вообще хочу чтобы можно было вызывать файл через командную строку во время запуска скрипта, командой вроде такой:
 python myprog.py test.txt
Знаю что можно использовать конструкцию вроде:
  import sys
file_input =sys.argv[1]
amount = sum(1 for l in open(file_input, 'r'))
но в таком случае считывается только название файла, а как считать полный путь к нему я не представляю.

Файл может находится в любой директории, просто перед запуском скрипта мы переходим в папку с этим с помощью командной строки. Что-то вроде:
 cd /home/andrey/Рабочий стол/rand/
python myprog.py test.txt
а потом к примеру вызвать скрипт из другой папки
cd /home/andrey/Рабочий стол/ran/
python myprog.py test.txt

Отредактировано cipeza (Июль 6, 2017 23:57:38)

Офлайн

#2 Июль 6, 2017 23:42:44

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

Считывание названия файла из командной строки Ubuntu и других Unix подобных систем

cipeza
но в таком случае считывается только название файла, а как считать полный путь к нему я не представляю
Если предположить что все нужные файлы должны находиться в строго определнной директории то както так:
 import sys
import os
file_input =sys.argv[1] # имя файла
dir_input = '/home/andrey/Рабочий стол/rand/' # каталог в котором должен файл лежать
file_path = os.path.join(dir_input, file_input) # полный путь к файлу



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

Офлайн

#3 Июль 6, 2017 23:47:52

cipeza
Зарегистрирован: 2017-07-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Считывание названия файла из командной строки Ubuntu и других Unix подобных систем

PEHDOM
Если предположить что все нужные файлы должны находиться в строго определнной директории то както так:
 import sys
import os
file_input =sys.argv[1] # имя файла
dir_input = '/home/andrey/Рабочий стол/rand/' # каталог в котором должен файл лежать
file_path = os.path.join(dir_input, file_input) # полный путь к файлу
Нет файл может находится в любой директории, просто перед запуском скрипта мы переходим в папку с этим с помощью командной строки. Что-то вроде
 cd /home/andrey/Рабочий стол/rand/
python myprog.py test.txt
а потом к примеру вызвать скрипт из другой папки
cd /home/andrey/Рабочий стол/ran/
python myprog.py test.txt
Забыл указать этот момент в самой теме

Отредактировано cipeza (Июль 6, 2017 23:49:47)

Офлайн

#4 Июль 7, 2017 00:54:41

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Считывание названия файла из командной строки Ubuntu и других Unix подобных систем

cipeza
просто перед запуском скрипта мы переходим в папку
тогда вам не нужен полный путь. можно работать просто с именем.

Но на всякий случай напоминаю, любой путь можно пополнить командой os.abspath



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version