Ruby なら、こういう感じ。
ただし、、DryRun なので、実際には実行されません

Python には、Fileutils みたいな、便利なライブラリは無いのか?

require 'fileutils'

( 1..2 ).each do |idx|
FileUtils::DryRun.mkdir( idx.to_s )
FileUtils::DryRun.touch( "#{ idx }/#{ idx }.txt" )
end

出力
mkdir 1
touch 1/1.txt

mkdir 2
touch 2/2.txt