【转】Python的路径及C语言扩展
1、 引入
Python语言的核心文件只有一个PythonXX.dll,XX是版本号,所有的.py、.pyc、.pyo文件都是用Pythonxx.dll进行解释执行的。而python.exe、Pythonw.exe只是对为pythonxx.dll提供了一个解释器窗体。
由于pythonxx.dll解释执行py文件时会在一定的路径下查找模块,而我关心的就是pythonxx.dll到底从哪些路径进行查找。
[……]
转帖,吐槽,乱扯
1、 引入
Python语言的核心文件只有一个PythonXX.dll,XX是版本号,所有的.py、.pyc、.pyo文件都是用Pythonxx.dll进行解释执行的。而python.exe、Pythonw.exe只是对为pythonxx.dll提供了一个解释器窗体。
由于pythonxx.dll解释执行py文件时会在一定的路径下查找模块,而我关心的就是pythonxx.dll到底从哪些路径进行查找。
[……]
Python没有内建一个编译为exe的功能。给python程序的部署带来不少的麻烦。 所以就会出现一些py2exe之类的很不错的工具,用于自动把.py文件编译为.exe文件。 最近抽空研究了一下手动实现类似py2exe的功能,希望加强对python的了解。 结果还相当不错。把结果记录下来,与大家共享。
1.1. 原理
文中所描述的方法,基于python的以下几个功能 1. python程序运行时,会在sys.path指定的路径中查找库文件。 2. python从2.3开始,支持从zip文件中import库(支持.py,.pyc和.pyo,但不支持.pyd) 3. python提供C API,让c语言的程序,可以很方便的调用python的程序
[……]
一、获取当前目录下的特定文件列表
>>>import glob,os
>>>curdir = os.getcwd() #获取当前目录
>>>os.chdir(workdir) #设置当前目录
>>>dir = glob.glob(‘*.dat’) #获取当前目录的dat文件列表
>>>os.chdir(curdir) #还原当前工作目录
>>>print dir
[……]
import sys
print sys.argv
print len(sys.argv) #参数个数
print sys.argv[1] #第一个参数
print sys.argv[2] #第二个参数[……]
python要读写excel文件,需要另外在安装一个扩展pywin32,如果是使用的python2.5版本,对应的pywin32为pywin32-212.win32-py2.5.exe(下载地址:http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/p/py/pywin32/pywin32-212.win32-py2.5.exe)。
import win32com
xlsfilename = r’D:\test.xls’ #test.xls 文件需要存在
inputstr = ‘input’
outputstr = ‘output’
[……]
>>> import os
>>> homedir = os.getcwd()
>>> print homedir
D:\python\test
>>>
>>> import sys
>>> print sys.argv[0]
D:\python\test\temp.py
>>> print os.path.abspath(sys.argv[0])
D:\python\test\temp.py
>>>
========[……]