У меня есть файл python, который использует glob для поиска файлов js в определенной папке, а затем распечатывает их:
print glob.glob(printfolder)
Я хочу получить имена файлов, найденные этим файлом, и передать их в другой файл, который подсчитывает строки кода каждого из этих файлов.
поэтому я использую:
python findjava.py /home/alien/Desktop/ | python countfile.py -a
(findjava — это скрипт, который находит java-файлы, этот адрес является аргументом того, в каком каталоге он должен искать эти файлы, а countfile — это файл, который получает 1 имя файла и подсчитывает свою строку кодов, аргумент -a должен показать все ( строки кода, комментарии и другие вещи, которые он считает)
Но я получаю следующий вывод:
['/home/alien/Desktop/testfile.js']
usage: countfile.py [-h] [-t] [-b] [-s] [-c] [-a] units
countfile.py: error: too few arguments
поэтому countfile все еще ждет аргумента с именем файла, который я пытаюсь получить с помощью
import sys
for line in sys.stdin:
print line
Есть предположения? ;_;
findjava
как стандартный ввод, а не как аргументы командной строки. Если вы хотите использовать вывод одной команды в качестве аргумента для другой, посмотритеxargs
. См. этот вопрос. - person BrenBarn   schedule 10.04.2014countfile
получает доступ к аргументам командной строки? Он просто читаетsys.stdin
. - person Barmar   schedule 10.04.2014