python杂记一
1. 输出CSV文件
用python输出csv文件不难,可是MS office excel和WPS 对输出的CSV文件打开规则不一样。
WPS可以支持CSV以'\t'为分隔符,打开文件直接写内容
MS office excel必须用','为分隔符,打开文件在写内容之前,要先写入文件头:u"\ufeff",否则输出的中文会出现乱码。
import codecs csvstr = 'test'
fh = codecs.open("myfile.csv","w","utf-8")
fh.write(u"\ufeff")
fh.write(csvstr)
fh.close()
2. 使用pyInstaller打包python程序
pyInstaller包目前可以直接使用pip install pyinstaller来安装,安装完成之后,在命令行输入pyinstaller命令,会出现参数提示信息。
D:\Source\Python>pyinstaller
usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
[--add-data <SRC;DEST or SRC:DEST>]
[--add-binary <SRC;DEST or SRC:DEST>] [-p DIR]
[--hidden-import MODULENAME]
[--additional-hooks-dir HOOKSPATH]
[--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES]
[--key KEY] [-d [{all,imports,bootloader,noarchive}]] [-s]
[--noupx] [-c] [-w]
[-i <FILE.ico or FILE.exe,ID or FILE.icns>]
[--version-file FILE] [-m <FILE or XML>] [-r RESOURCE]
[--uac-admin] [--uac-uiaccess] [--win-private-assemblies]
[--win-no-prefer-redirects]
[--osx-bundle-identifier BUNDLE_IDENTIFIER]
[--runtime-tmpdir PATH] [--bootloader-ignore-signals]
[--distpath DIR] [--workpath WORKPATH] [-y]
[--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL]
scriptname [scriptname ...]
pyinstaller: error: the following arguments are required: scriptname
pyinstaller命令后scriptname参数是必须的,这是要生成exe的脚本文件,其都是可选参数,如果直接用pyinstaller scriptname来打包,会生成很多dll文件,如果想打包成一个可执行程序,要加参数-F,pyinstaller -F scriptname,其他参数下如图所示。
要打包的脚本文件要注意import的包,尽量只import需要的包和类,否则生成的文件可能会很大。
3. 获取当前文件路径,上级目录路径
import os,sys
使用sys.path[0]、sys.argv[0]、os.getcwd()、os.path.abspath(__file__)、os.path.realpath(__file__)
sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为Python会自动把sys.argv[0]加入sys.path。
如果你在C:\test目录下执行python getpath\getpath.py,那么os.getcwd()会输出“C:\test”,sys.path[0]会输出“C:\test\getpath”。
获取当前的路径:
__file__是当前执行的文件
# 获取当前文件__file__的路径
print(os.path.realpath(__file__))
# 获取当前文件__file__的所在目录
print(os.path.dirname(os.path.realpath(__file__)))
print(os.path.abspath(os.path.dirname(__file__)))
print(os.path.split(os.path.realpath(__file__))[0])
# 获取上级目录
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
print(os.path.abspath(os.path.join(os.path.dirname('APPtest\\RSA.py'),'.\..')))
# 获取上上级目录
print(os.path.abspath(os.path.join(os.path.dirname('APPtest\\RSA.py'),'../..')))
python杂记一的更多相关文章
- python杂记-4(迭代器&生成器)
#!/usr/bin/env python# -*- coding: utf-8 -*-#1.迭代器&生成器#生成器#正确的方法是使用for循环,因为generator也是可迭代对象:g = ...
- python杂记-3(购买商品)
#!/usr/bin/env python# -*- coding: utf-8 -*-#如下是一个购物程序:#先输入工资,显示商品列表,购买,quit退出,最后格式化输出所买的商品.count = ...
- python杂记-1(os模块)
os模块说明:python os模块包含普遍的操作系统功能 os.access(path, mode) # 检验权限模式 os.chdir(path) # 改变当前工作目录os.chflags(pat ...
- python杂记-6(time&datetime模块)
#!/usr/bin/env python# -*- coding: utf-8 -*-import timeprint(time.clock())##返回处理器时间,3.3开始已废弃 , 改成了ti ...
- python杂记-5(装饰器)
1.被装饰的函数有参数(一个参数): def w1(func): def inner(arg): # 验证1 # 验证2 # 验证3 return func(arg) return inner @w1 ...
- python 杂记
class TestA(object): def __init__(self): print("A is initing"); def foo(self): print(" ...
- Python杂记
一.函数 1.numpy 模块中的nonzero函数 nonzero返回的数非零元素的下标. 如果输入是单维度的时候它的返回值只有一个:如果输入是多个维度的话,那么它的返回值也是多个维度的.并且的它的 ...
- python杂记二
1. 写文件可以直接使用print函数 file_name = open("file_name.txt","w") print("file conta ...
- Python——杂记
python 最近出错总结: 1.而for..in ..中不要用else if x in y: print else: print2.def fibs(num): ... ...
随机推荐
- 【Oracle入门】数据库的二级映像
数据库系统 的模式.内模式.外模式之间有很大的差别,为了实现用户和数据之间的透明化,DBMS提供了两层映像:外模式.模式映像和模式/内模式u映像.有了这两层映像,用户就能逻辑地.抽象地处理数据,而不必 ...
- VUE开发SPA之微信授权登录
SPA单页应用中微信授权登录的一点思路 单页应用应该如何解决微信授权登录的尴尬跳转?后退无法返回?主要遇到的问题就是 先进入单页应用,一边渲染页面一边判断用户有没有登录,当判断到没有登录时异步数据请求 ...
- Unity动画机制 Animator与Animator Controller教程
Unity动画机制Animator 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- 测试那些事儿—软测必备的Linux知识(二)
linux常用命令 用户登录linux后,可以在Linux的命令提示符后面输入命令与系统进行交互. 1.磁盘管理 1.1 cd 切换目录:让登录用户在不同的目录间切换 常用的目录切换 cd~ 进入当前 ...
- windows下使用kafka的常用命令
参考文档: https://blog.csdn.net/evankaka/article/details/52421314 http://orchome.com/6 1 启动zookeeper cmd ...
- python 使用gevent模块实现手动挡切换多协程。
from greenlet import greenlet def test1(): print(12) g2.switch()#切换到协程g2执行,保存执行状态 print(23) g2.switc ...
- Arch Linux 独特的包管理器相关名词解释及用法对照
https://wiki.archlinux.org/index.php/PacmanPacman包管理器是Arch Linux的主要特色之一.它结合了简单的二进制包格式和易于使用的构建系统.pacm ...
- c# android 全局捕获未处理异常
[Application] public class MyApp : Application { public MyApp(IntPtr javaReference, JniHandleOwnersh ...
- Head First 设计模式 (Eric Freeman / Elisabeth Freeman / Kathy Sierra / Bert Bates 著)
1. 欢迎来到设计模式世界:设计模式入门 (已看) 策略模式 定义了算法族,分别分装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 设计原则 找出应用中可能需要变化之处,把它们 ...
- Excel--按内容分页打印
当我们有这样一张表,需要按不同城市分页打印,每页带标题行,可按以下步骤:1.点击城市一列任一单元格,点击“开始”——>“排序和筛选”(升序): 2.点击“数据”-->“分类汇总”: 分类字 ...