Передача переменной Int в re.findall

Поскольку, как Вы говорите, вход file должен быть имена файлов . Вывод ls, однако, является просто текстом. То, что это, оказывается, список имен файлов, не изменяет то, что это - просто текст и не местоположение файлов на жестком диске.

то, Когда Вы видите вывод, распечатанный на экране, что Вы видите, является текстом. Является ли тот текст стихотворением, или список имен файлов не имеет никакого значения к компьютеру. Все, что это знает, - то, что это - текст. Поэтому можно передать вывод ls к программам, которые берут текст в качестве входа (хотя Вы действительно, действительно не был должен ):

$ ls / | grep etc
etc

Так, для использования вывода команды, которая перечисляет имена файлов как текст (такой как ls или find), как введено для команды, которая берет имена файлов необходимо использовать некоторые приемы. Типичный инструмент для этого xargs:

$ ls
file1 file2

$ ls | xargs wc
 9  9 38 file1
 5  5 20 file2
14 14 58 total

, Поскольку я сказал, прежде чем, тем не менее, Вы действительно не хотите анализировать вывод [1 111]. Что-то как [1 112] лучше (print0 печать \0 вместо новой строки после того, как каждое имя файла и -0 из [1 116] позволит ей иметь дело с таким входом; это - прием, чтобы заставить Ваши команды работать с именами файлов, содержащими новые строки):

$ find . -type f -print0 | xargs -0 wc
 9  9 38 ./file1
 5  5 20 ./file2
14 14 58 total

, Который также поступает по-своему выполнения этого, не нуждаясь xargs вообще:

$ find . -type f -exec wc {} +
 9  9 38 ./file1
 5  5 20 ./file2
14 14 58 total

Наконец, можно также использовать цикл оболочки. Однако обратите внимание, что в большинстве случаев, xargs будет намного быстрее и более эффективным. Например:

$ for file in *; do wc "$file"; done
 9  9 38 file1
 5  5 20 file2

0
задан 13.04.2020, 17:06

1 ответ

year не должно быть в кавычках, так как это переменная:

year = 2013
links = re.findall(r + '(' + str(year) + '-.*\/t.*.html)', line)
0
ответ дан 13.04.2020, 17:06
  • 1
    r не является переменной, но обозначает необработанную строку. Это должно, вероятно, быть: r' (' + str (год) + r'-.*... – Manoranjan 13.04.2020, 17:07

Теги

Похожие вопросы