Вы можете использовать понимание list
:
df.columns = [str(col) + '_x' for col in df.columns]
Существуют также встроенные методы, такие как .add_suffix()
и add_prefix
, как указано в другом ответе.
Для Windows EXE и DLL:
require "Win32API"
FILENAME = "c:/ruby/bin/ruby.exe" #your filename here
s=""
vsize=Win32API.new('version.dll', 'GetFileVersionInfoSize',
['P', 'P'], 'L').call(FILENAME, s)
p vsize
if (vsize > 0)
result = ' '*vsize
Win32API.new('version.dll', 'GetFileVersionInfo',
['P', 'L', 'L', 'P'], 'L').call(FILENAME, 0, vsize, result)
rstring = result.unpack('v*').map{|s| s.chr if s<256}*''
r = /FileVersion..(.*?)\000/.match(rstring)
puts "FileVersion = #{r ? r[1] : '??' }"
else
puts "No Version Info"
end
'Распаковывание' +regexp часть является взломом, "надлежащим" путем является VerQueryValue API, но это должно работать на большинство файлов. (вероятно, терпит полный провал на расширенных наборах символов.)
Что, если Вы хотите получить информацию о версии с рубином, но код Ruby не работает на Windows?
Следующее делает просто что (учет того же расширенного набора символов, предупреждающего):
#!/usr/bin/ruby
s = File.read(ARGV[0])
x = s.match(/F\0i\0l\0e\0V\0e\0r\0s\0i\0o\0n\0*(.*?)\0\0\0/)
if x.class == MatchData
ver=x[1].gsub(/\0/,"")
else
ver="No version"
end
puts ver
Если Вы работаете над платформой Microsoft, необходимо смочь использовать API Win32 в Ruby для вызова GetFileVersionInfo (), который возвратит информацию, которую Вы ищете. http://msdn.microsoft.com/en-us/library/ms647003.aspx
Для любого файла необходимо было бы обнаружить, в каком формате файл находится, и затем откройте файл и считайте необходимые байты для обнаружения, каков версия файл. Нет никакого API или общепринятой методики для определения версии файла в Ruby.
Обратите внимание, что было бы легче, если бы версия файла была в имени файла.