Найти - Пользователи
Полная версия: Считывание названия файла из командной строки Ubuntu и других Unix подобных систем
Начало » Python для новичков » Считывание названия файла из командной строки Ubuntu и других Unix подобных систем
1
cipeza
Есть часть кода:
  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
PEHDOM
cipeza
но в таком случае считывается только название файла, а как считать полный путь к нему я не представляю
Если предположить что все нужные файлы должны находиться в строго определнной директории то както так:
 import sys
import os
file_input =sys.argv[1] # имя файла
dir_input = '/home/andrey/Рабочий стол/rand/' # каталог в котором должен файл лежать
file_path = os.path.join(dir_input, file_input) # полный путь к файлу
cipeza
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
Забыл указать этот момент в самой теме
doza_and
cipeza
просто перед запуском скрипта мы переходим в папку
тогда вам не нужен полный путь. можно работать просто с именем.

Но на всякий случай напоминаю, любой путь можно пополнить командой os.abspath
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB