python常用代码积累
一、文件操作
1、判断一个目录是否存在,若不存在则创建
if not os.path.isdir(new_path):
os.makedirs(new_path)
2、新建一个文件
f=open("filename",'w')
f.close()
首先会判断这个文件是否存在,若不存在则新建,。也可以在open和close直接f.write()函数写文件。
3、比较两个文件是否相同
import filecmp
filecmp.cmp(r'文件1',r'文件2')
如果两个文件相同。会出输出true。否则输出false
二、系统级操作
1、获取当前运行脚本所在目录
import sys
sys.path[0]
2、获取当前工作路径
import os
os.getcwd()
3、 获取系统时间
import time
time.strftime('%Y-%m-%d',time.localtime(time.time()))
输出格式类似2010-07-19
三、数据库操作
1、连接数据库
import MySQLdb
conn=MySQLdb.connect(host=host1,user=user1,passwd=pass1,port=port1,db=dbname)
cur=conn.cursor()
cur.close()
conn.close()
cursor是用来执行命令的方法,close断开连接,可在connect和close直接进行数据库的操作
2、数据库操作
conn.select_db('python')
count=cur.execute('select * from test')
result=cur.fetchone()
results=cur.fetchmany(5)
results=cur.fetchall()
conn.commit()
select_db()选择数据库
execute()执行单条sql语句,返回值为受影响的行数
fetchone() 返回一条结果行
fetchmany(size)接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
fetchall() 返回所有结果值
3、数据库连接失败抛出异常
try: conn=MySQLdb.connect(host=host1,user=user1,passwd=pass1,port=port1,db=dbname)
except MySQLdb.Error,e:
print "Mysql Error %d:%s" % (e.args[0],e.args[1])
四、其他功能型操作
1、将元组的值转化成字符串,并输出到文件,用到string下的join函数
例: import string
seq=("apple","pair","orange")
f =open("/data/cheriegong/python/test.data",'w')
f.write(' '.join(seq))
f.close()
使用string.join(list) ,会报错:TypeError: sequence item 0: expected string, int found
li = range(10)
print '\n'.join(li)
因为join函数处理的list,元素必须是string。它不进行任何的强制类型转换。对于其他类型需要强制转换为字符串。
下面为正确的调用:
li = range(10)
print '\n'.join(str(item) for item in li)
2、将string转换成list
可以用split函数,但是很麻烦。可以使用eval函数比较方便。例:eval('[1, 2, "a"]') 可以得到list [1, 2, "a"]。大部分用str()函数生成的string,都能用eval()还原成原来的对象。
3、获取命令行输入的参数
首先,必须 from optparse import OptionParser 类,创建一个 OptionParser 对象:
parser = OptionParser()
然后,使用 add_option 来定义命令行参数:
parser.add_option("-f", "--file", action="store", type="string", dest="filename")
-f是短参数;--file是长参数,可选;type数据类型,默认为string;dest用来保存参数值得变量,如果没有指定将用参数名来对option对象的值进行存取,这里即为file。action可用值有store,store_true,stote_false等。 store_true 和 store_false,用于处理带命令行参数后面不带值的情况。
例:-v,-q 等命令行参数:
parser.add_option("-v", action="store_true", dest="verbose")
parser.add_option("-q", action="store_false", dest="verbose")
这样的话,当解析到 ‘-v’,options.verbose 将被赋予 True 值,反之,解析到 ‘-q’,会被赋予 False 值。
最后,一旦你已经定义好了所有的命令行参数,调用 parse_args() 来解析程序的命令行:
(options, args) = parser.parse_args()
parse_args() 返回的两个值:options,它是一个对象(optpars.Values),保存所有命令行参数值。只要知道命令行参数名,如 file,就可以访问其对应的值:options.file 。
例:
parser.add_option("-f", "--file", action="store", type="string", dest="filename")
args = ["-f", "foo.txt"]
(options, args) = parser.parse_args(args)
print options.filename
最后将会打印出 “foo.txt”。
4、打印0~9 十个数字
print "\n".join(str(i) for i in range(10))
也可以用for循环实现
for i in range(10):
print i;
5、import指定目录下的模块
将文件所在路径加入sys.path,sys.path是一个list。import sys;
sys.path.append("/home/a/")
import b
为了避免由于之前存在一个同名模块导致加载失败,使用以下方法:
import sys;
if not "/home/a/" in sys.path:
sys.path.append("/home/a/")
if not 'b' in sys.modules:
b = __import__('b')
else:
eval('import b')
b = eval('reload(b)')
此外,在相同目录下.py文件,可以直接被import。
python常用代码积累的更多相关文章
- 【转载】GitHub 标星 1.2w+,超全 Python 常用代码合集,值得收藏!
本文转自逆袭的二胖,作者二胖 今天给大家介绍一个由一个国外小哥用好几年时间维护的 Python 代码合集.简单来说就是,这个程序员小哥在几年前开始保存自己写过的 Python 代码,同时把一些自己比较 ...
- python 常用代码
获取标签名 h1 class 是h1usersoup.find(name="h1", attrs={"class":"h1user"});获 ...
- JS date常用代码积累
Date.prototype.Format = function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+& ...
- python常用代码片段
目录 Python3常用 文件处理 json处理 log日志 argparse使用 INIparser Python3常用 文件处理 class BaseMethod: @staticmethod d ...
- python常用代码、问题汇总
1.生成dataframe数据 5.读取带 ','分隔符的txt文件 4.DataFrame格式数据处理中报错 2.安装库时出现如下错误: 3.得到股票交易日数据 1.生成dataframe数据 im ...
- C# 个人常用代码积累
/// <summary> /// TextBox限制只能输入十六进制,且只能输入6个 /// </summary> /// <param name="send ...
- python常用代码
#coding=utf-8 import urllib import re def getHtml(url): page = urllib.urlopen(url) html = page.read( ...
- shell常用代码积累
1.使用getopts从命令行接收参数 例: while getopts h:u:p: OPTION do case $OPTION in h) echo "主机地址:$OPTARG&quo ...
- Python 常用 代码片段
文件名字中含有特殊字符转成空格,因为?‘’等作为文件名是非法的.以下正则表达式进行过滤转换 newname = re.sub("[\s+\.\!\/_,$%^*(+\"\')]+| ...
随机推荐
- Knockout.js(四):自定义绑定
除了内嵌的绑定,还可以创建一些自定义绑定,封装复杂的逻辑或行为. 注册绑定 添加子属性到ko.bindingHandlers来注册绑定: ko.bindingHandlers.yourBindingN ...
- android bitmap recycle
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 不需要位图的时候,就可以手动调用recycle. 2.3之前 位图对象 存在 java的 ...
- luoguP3830 [SHOI2012]随机树 期望概率 + 动态规划 + 结论
题意非常的复杂,考虑转化一下: 每次选择一个叶节点,删除本叶节点(深度为$dep$)的同时,加入两个深度为$dep + 1$的叶节点,重复$n$轮 首先考虑第$1$问,(你看我这种人相信数据绝对是最大 ...
- ARC 101 C - Candles
题面在这里! 显然直接枚举左端点(右端点)就OK啦. #include<cstdio> #include<cstdlib> #include<algorithm> ...
- [ZHOJ1131]Find K Min
题目大意: 给你一个数列,求其中第K大的数. 思路: 类似于快速排序的思想,每次可以确定出当前的的x在数组中的位置. 然后根据位置选择该往左找还是往右找. #pragma GCC optimize(3 ...
- hdu 1565 最小割
黑白染色,源指向白,黑指向汇,容量都是方格中数的大小,相邻的格子白指向黑,容量为oo,然后求一次最小割. 这个割是一个简单割,如果只选择不在割中的点,那么一种割就和一个选数方案一一对应,割的大小就是不 ...
- Nginx -- nginx.conf 配置文件详讲
Nginx服务器配置,nginx.conf文件代码详讲,结合不同楼主的博文得到: #关掉访问日志可以优化服务器 #定义Nginx运行的用户和用户组 #user nobody; #nginx进程数 #如 ...
- Codeforces Round #302 (Div. 1) C. Remembering Strings DP
C. Remembering Strings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- CAShapeLayer实现音量大小动态改变
我是效果图 实现如图这效果一般会直接通过多张图进行切换进行完成.但这样的处理,会浪费App的资源存储空间,而且效率也不高.那么今天我们用CAShapeLayer实现以下吧. 拆分: 1.一个椭圆 2. ...
- ActivityMQ实际应用常见问题
1.ActiveMQ支持消息过滤设置规则和用法selector支持下列几种方式:(1) String literals: "color ='blue'"(2) Byte strin ...