2015-02-27 2 views
0

У меня есть два вопроса относительно Ruby.Ruby как напечатать часть имени файла

Для приведенного ниже кода # 1, я пытаюсь напечатать все имена файлов внутри папки, но, например, «puts text» даст мне «/folder1/folder2/filename1.txt». Как я могу просто напечатать только «имя_файла1» без каталога и .txt

number1:

Dir.glob('/folder1/folder2/*.txt').each do |text| 
puts text 

number2: я пытаюсь объединить два массиву

a = [16,5,6,8,7] 
b = [people,men,guys,boys,you] 

выход будет выглядеть :

people:16, men:5, guys:6, boys:8, you:7 

Я преобразовал a в строку с использованием .to_s, но я до сих пор не могу их комбинировать.

+0

Пожалуйста, пост два отдельных вопроса, если у вас есть два отдельных вопроса. Также расскажите, что вы пытаетесь выполнить. Ответы могут отличаться в зависимости от конечной цели. – bdares

ответ

1

Вы хотите File.basename:

Dir.glob('/folder1/folder2/*.txt').each do |path| 
puts File.basename(path, '.txt') 
end 
+0

'File.basename' включает расширение файла, которое OP не хочет. Возможно, вы имели в виду 'File.basename (путь, '.txt')'? – infused

Смежные вопросы