Ruby编写的取得Pyton所有函数并导出到XML文档的程序
2006-03-15 23:28
393 查看
=begin
遍历python lib的目录 'C:/Python24/Lib',对每一个文件和文件夹进行比对,然后建立其函数的xml的tree,并保存到C:/Python.xml中
=end
require 'win32ole'
$dom = WIN32OLE.new('Msxml2.DOMDocument.3.0')
$dom.async = false
$dom.loadXML('<?xml version="1.0" encoding="UTF-8" standalone="yes"?><root></root>')
$r = /^def/s+(/w+?)/s*[(]/
def testfiles(dir,node)
Dir.chdir(dir)
dirs = Dir["*"]
dirs.each do |d|
filename = dir + "//" +d
if FileTest.directory?(filename)
newdir = $dom.createElement('directory')
attr = $dom.createAttribute('DIR')
attr.value = d
dirNode = node.appendChild(newdir)
dirNode.setAttributeNode(attr)
testfiles(filename,newdir)
elsif d =~ //.py|pyw/
newfile = $dom.createElement('pyfile')
attr = $dom.createAttribute('FILE')
attr.value = d
filenode = node.appendChild(newfile)
filenode.setAttributeNode(attr)
f = File.new(filename,'r')
pytxt = f.read()
pytxt.each_line {|t|
m = $r.match(t)
if m
func = m[1]
if func
newfunc = $dom.createElement('function')
funcNode = filenode.appendChild(newfunc)
funcNode.text = func
end
end
}
else
end
end
end
root = $dom.documentElement()
path = 'C:/Python24/Lib'
testfiles(path,root)
$dom.save('c:/python.xml')
遍历python lib的目录 'C:/Python24/Lib',对每一个文件和文件夹进行比对,然后建立其函数的xml的tree,并保存到C:/Python.xml中
=end
require 'win32ole'
$dom = WIN32OLE.new('Msxml2.DOMDocument.3.0')
$dom.async = false
$dom.loadXML('<?xml version="1.0" encoding="UTF-8" standalone="yes"?><root></root>')
$r = /^def/s+(/w+?)/s*[(]/
def testfiles(dir,node)
Dir.chdir(dir)
dirs = Dir["*"]
dirs.each do |d|
filename = dir + "//" +d
if FileTest.directory?(filename)
newdir = $dom.createElement('directory')
attr = $dom.createAttribute('DIR')
attr.value = d
dirNode = node.appendChild(newdir)
dirNode.setAttributeNode(attr)
testfiles(filename,newdir)
elsif d =~ //.py|pyw/
newfile = $dom.createElement('pyfile')
attr = $dom.createAttribute('FILE')
attr.value = d
filenode = node.appendChild(newfile)
filenode.setAttributeNode(attr)
f = File.new(filename,'r')
pytxt = f.read()
pytxt.each_line {|t|
m = $r.match(t)
if m
func = m[1]
if func
newfunc = $dom.createElement('function')
funcNode = filenode.appendChild(newfunc)
funcNode.text = func
end
end
}
else
end
end
end
root = $dom.documentElement()
path = 'C:/Python24/Lib'
testfiles(path,root)
$dom.save('c:/python.xml')
相关文章推荐
- 第44条 为所有导出的API元素编写文档注释
- 编写一个函数,接受三个string参数,s,oldVal和newVal。使用迭代器及insert和erase函数将s中所有oldVal替换为newVal。测试你的程序,用他替换通用的简写形式,如,将“tho”,将“”“”
- 第四十四条:为所有导出的API元素编写文档注释
- 编写一个程序,要求用户输入最多10个高尔夫成绩,并将其存储在一个数组中。 程序允许用户提早结束输入,并在一行上显示所有成绩,然后报告平均成绩。 请使用3个数组处理函数来分别进行输入、显示和计算
- (44):为所有导出的API元素编写文档注释
- DLL 的编写,导出函数 DLL 中.def和extern c的作用
- matlab如何提取程序所依赖的所有自定义函数文件到一个文件夹中去
- 学习笔记------------------对Action中所有方法进行输入校验和对指定方法输入校验(手工编写代码和xml方式)
- sax解析 得到xml文档所有内容和获取指定标签的值
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 编写函数fun(char *s),其功能是:把字符串中所有字符前移一个位置,串中的第1个字符移到最后。 例如,若输入字符串为:ABC123xyz ,则应输出字符串: BC123xyzA 。
- 内核所有模块导出函数inlinehook检测
- 编写一个程序,将e:\java目录下的所有.java文件复制到e:\jad目录下
- 1. 编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。
- 用asp+xmlhttp编写web采集程序
- JNI中在被调用的C/C++函数中如何访问Java程序中的类,并编写应用实例
- VS2010 生成程序 默认导出函数 Init_locks 的解决办法
- 编写程序从标准输入设备读入的元素数据建立一个int型vector对象,然后动态创建与该vector大小一致的数组,把vector对象的所有元素复制给该数组
- c语言:编写程序数一下 1到 100 的所有整数中出现多少次数字 9
- 编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是 100 的程序,并输出所有的可能性