![]() |
|
||||||
本文绝对原创,如想转载,请注明 我们知道,一个EXCEL文件单表行数最多是65536行,超过这个行数,就无法再EXCEL中显示,在日常工作中,很多情况下需要对从数据库中提取的超大行数的数据进行EXCEL操作,所以我就想到了用python先把大文件进行分割处理,这样就可以解决这个矛盾了,说干就干。 先说说思路,首先让程序具有接受输入文件名作为参数的功能,这样以后可以处理不同的文件了,而且行数自定义,关键还有一个,就是行首作为每个文件的行首。先确定这3个功能吧,大致有就够用了 然后开始写程序,源程序为: #源文件开始 FILENAME=splitFile.py # -*- coding: utf-8 -*- #源程序结束 上面的源程序,功能上基本都做了注释。不过还有几个知识点需要说明一下,也让我加强记忆 1:文件开始用 # -*- coding:utf-8 -*- 可以在源程序中使用中文 2:print u'打印的内容' 这样在运行的时候,打印的信息就不是乱码了 3:用getopt.getopt()来分析命令行参数,这个模块的用法和解释如下getopt是用来分析命令行参数的模块。 args一般为sys.argv[1:]。 options为选项字母(以"-"开始)组成的字符串,如果某个选项字母带有参数,那么这个字母有要加":"号。 long_options为可选参数,它是一个字符串的List,用来表示长参数(以"--"开始),如果某个长参数带有参数,那么这个字母后面要加"="。 函数有两个返回: 第一个是(option, value)的list。option为带"-"的选项字母,或者是带"--"的长参数(无需严格匹配,例如--hl可匹配--help)。如果option带有参数,那么会在value中给出,否则value为空。 第二个是函数未匹配到的参数。 Python文档中的例子: import getopt, sys def main(): try: opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="]) except getopt.GetoptError: # print help information and exit: usage() sys.exit(2) output = None verbose = False for o, a in opts: if o == "-v": verbose = True if o in ("-h", "--help"): usage() sys.exit() if o in ("-o", "--output"): output = a # ... if __name__ == "__main__": main() 假如如此调用程序时:python 程序名.py -h -o abc --out def ghi 那么getopt.getopt()函数返回的结果大致是这样的。 (option, value)list中是: [('-h', ''), ('-o', 'abc'), ('--output', 'def')] args中是: ['ghi'] -------------------------------------------------------------------------------------------------------------------------------------
另外听说py2exe可以封装成脱离PYTHON运行,就实验了一下,过程分享给大家
第一步:写一个sf_setup.py的安装文件,文件内容如下
#开始
from distutils.core import setup setup(console=["splitFile.py"]) #结束 第二步:运行这个sf_setup.py py2exe,在同目录下就生成了一个dist目录,这个目录下就是你要发布到没有安装
python的机器上的发布包。
哈哈,简单吧,py2exe里面有很多方法,我也没仔细研究,有时间大家一起学习啊 |
|||||||
|
|||||||
| 一事无成,迷惘的生活,生活不迷茫还能怎么清醒? |
| AVG Anti-Spyware 升级代理 < 上一篇 | 下一篇 > 让WINDOWS 自动登陆 |
