版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/listener51/article/details/77116264
一、python篇1
1、strip()方法
(1)、strip() 方法用于移除字符串头尾指定的字符(默认为空格)。
str.strip([chars]);
参数:chars -- 移除字符串头尾指定的字符。
返回值:返回移除字符串头尾指定的字符生成的新字符串。
2、os.path.exists(path) #路径存在则返回True,路径损坏返回False
(1)、 os.path.splitext(path) #分割路径,返回路径名和文件扩展名的元组
3、if判断的使用
(1)、
第一种是`if x is None`;
第二种是 `if not x:`;
第三种是`if not x is None`(这句这样理解更清晰`if not (x is None)`) 。
在Python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False
第二种是 `if not x:`;
第三种是`if not x is None`(这句这样理解更清晰`if not (x is None)`) 。
在Python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False
4、Python glob模块
(1)、glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:"*", "?", "[]"。"*"匹配0个或多个字符;"?"匹配单个字符;"[]"匹配指定范围内的字符,如:[0-9]匹配数字。
(2)、glob.glob
返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。下面是使用glob.glob的例子:
import glob
#获取指定目录下的所有图片
print glob.glob(r"E:\Picture\*\*.jpg")
#获取上级目录的所有.py文件
print glob.glob(r'../*.py') #相对路径
import glob #获取指定目录下的所有图片 print glob.glob(r"E:\Picture\*\*.jpg") #获取上级目录的所有.py文件 print glob.glob(r'../*.py') #相对路径
5、 len()的用法
(1)、作用:返回字符串、列表、字典、元组等长度
(2)、语法:len(str)
(3)、参数:
str:要计算的字符串、列表、字典、元组等
(4)、返回值:字符串、列表、字典、元组等元素的长度
(2)、语法:len(str)
(3)、参数:
str:要计算的字符串、列表、字典、元组等
(4)、返回值:字符串、列表、字典、元组等元素的长度
6、open()函数
(1)、open(路径+文件名,读写模式)
读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式
读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式
7、file的读写方法:
(1)、
f.read([size]) #size为读取的长度,以byte为单位
f.readline([size])
#读一行,如果定义了size,有可能返回的只是一行的一部分
f.readlines([size])
#把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
f.write(str)
#把str写到文件中,write()并不会在str后加上一个换行符
f.writelines(seq)
#把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
python中readline()是读取一行数据,而readlines是读取所有行数据,并且每一行存在列表的相应元素中。这里换行符都是存在的,readline()输出之后会保留行尾的空格,而readlines()也会,在每一个元素中都会有"\n"的出现。比如:['456\n', '789\n', '1012']
8、for 语句
(1)、for循环在Python中是一个通用的序列迭代器:可以遍历序列对象内的元素。for语句可用于字符串,列表,元组,其他内置可迭代对象以及之后我们能够通过类所创建的新对象。
(2)、一般格式
Python for循环的首行定义了一个赋值目标(或【一些目标】),以及你想遍历的对象,首行后面是你想重复的语句块(一般都有缩进)
for首行中用作赋值目标的变量名通常是for语句所在作用于的变量(可能是新的)。这个变量名没有什么特别的,甚至可以在循环主体中修改。但是当控制权再次回到循环顶端时,就会自动被设成序列的下一个元素。循环之后,这个变量一般都还是引用了最近所用过的元素,也就是序列中最后的元素,除非通过一个break语句退出了循环。
(2)、一般格式
Python for循环的首行定义了一个赋值目标(或【一些目标】),以及你想遍历的对象,首行后面是你想重复的语句块(一般都有缩进)
for <target> in <object>:
<statements>
else:
<statements>
当ptyhon运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环主体。循环主体一般使用赋值的目标来引用序列中当前的元素,就好像那事遍历序列的游标。
for首行中用作赋值目标的变量名通常是for语句所在作用于的变量(可能是新的)。这个变量名没有什么特别的,甚至可以在循环主体中修改。但是当控制权再次回到循环顶端时,就会自动被设成序列的下一个元素。循环之后,这个变量一般都还是引用了最近所用过的元素,也就是序列中最后的元素,除非通过一个break语句退出了循环。
9、in 成员资格
(1)、有时候要判断一个数是否在一个序列里面,这时就会用到in运算符来判断成员资格,如果条件为真时,就会返回true,条件为假时,返回一个flase。这样的运算符叫做布尔运算符,其真值叫做布尔值。可以检查某一个字符是否存在在一个字符串中,还可以检查某一个字符串是否存在在一个序列之中。
10、join() 方法
(1)、Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法:
str.join(sequence)
参数:sequence -- 要连接的元素序列。
返回值:返回通过指定字符连接序列中元素后生成的新字符串。
#!/usr/bin/python
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
输出结果:
a-b-c
11、Python 中的序列-列表和元祖
(1)、在Python中有六种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。在这里暂时只讨论列表和元组。列表和元组的主要区别在于:列表可以修改,元组(不可变)不能。
通用序列操作
所有的序列都可以进行某些特定的操作。这些操作包括:
所有的序列都可以进行某些特定的操作。这些操作包括:
- 索引(indexing)
- 分片(sliceing)
- 加(adding)
- 乘(multiplying)
- 检查某个元素是否属于这序列(index)
- 计算序列长度(len)
- 找出最大元素和最小元素(min/max)
- 空列表[], 空字典{}, 空元组() :http://blog.csdn.net/facevoid/article/details/5338335
12、Python 中的replace() 方法
replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法:
str.replace(old, new[, max])
参数
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
语法:
str.replace(old, new[, max])
参数
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
13、split() 方法
split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
语法:
str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为空格。
num -- 分割次数。
返回值
返回分割后的字符串列表。
问::python 中的split函数的第二个参数如果为负数,是什么意思?比如filename = response.url.split("/")[-2],这个-2何解?
答::这不是split的参数,response.url.split("/")会返回一个列表,[-2]会对返回的列表进行索引,选取倒数第二项
语法:
str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为空格。
num -- 分割次数。
返回值
返回分割后的字符串列表。
问::python 中的split函数的第二个参数如果为负数,是什么意思?比如filename = response.url.split("/")[-2],这个-2何解?
答::这不是split的参数,response.url.split("/")会返回一个列表,[-2]会对返回的列表进行索引,选取倒数第二项
14、python os.path模块常用方法详解
(1)、os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法。更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html
1.os.path.abspath(path)
返回path规范化的绝对路径。
>>> os.path.abspath('test.csv')
'C:\\Python25\\test.csv'
>>> os.path.abspath('c:\\test.csv')
'c:\\test.csv'
>>> os.path.abspath('../csv\\test.csv')
'C:\\csv\\test.csv'
2.os.path.split(path)
将path分割成目录和文件名二元组返回。
>>> os.path.split('c:\\csv\\test.csv')
('c:\\csv', 'test.csv')
>>> os.path.split('c:\\csv\\')
('c:\\csv', '')
3.os.path.dirname(path)
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。
>>> os.path.basename('c:\\test.csv')
'test.csv'
>>> os.path.basename('c:\\csv')
'csv' (这里csv被当作文件名处理了)
>>> os.path.basename('c:\\csv\\')
''
15、Python 中的compile(), search() 方法
(1)、re.compile
可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:
可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。下面是一个正则表达式对象的一个例子:
import re
text = "JGood is a handsome boy, he is cool, clever, and so on..."
regex = re.compile(r'\w*oo\w*')
print regex.findall(text) #查找所有包含'oo'的单词
print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。
另参考网址: http://blog.csdn.NET/zouxy09/article/details/16920661 http://www.cnblogs.com/dreamer-fish/p/5282679.html
match函数只能够字符串的开始位置开始匹配,而search是可以匹配字符串的任意位置,但也是返回找到的第一个匹配的模式。
16、Python 中的List sort()方法
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
语法:
sort()方法语法:list.sort([func])
参数:
func -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
返回值:
该方法没有返回值,但是会对列表的对象进行排序。
实例:
结果:
语法:
sort()方法语法:list.sort([func])
参数:
func -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
返回值:
该方法没有返回值,但是会对列表的对象进行排序。
实例:
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.sort();
print "List : ", aList;
结果:
List : [123, 'abc', 'xyz', 'xyz', 'zara']
17、Python 中的try方法
你可以不带任何异常类型使用except,如下实例:
try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码
以上方式try-except语句捕获所有发生的异常。但这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。
18、Python 中的数字转字符串方法
数字转成字符串,使用格式化字符串:如
tt=322
tem='%d' %tt
tem即为tt转换成的字符串
数字转换成字符串(接上面):
>>> d = "%i"%c # 10进制表示
常用的格式化字符串:
%d 整数
%f%F 浮点数
%e%E 科学计数
%g%G e 和%f/%E 和%F 的简写
%% 输出%
19、Python 中的range()方法
(1)、详细记录python的range()函数用法
使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节。这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序。
这里记录一下:
使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节。这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序。
这里记录一下:
>>>range(1,5)#代表从1到5(不包含5)
[1,2,3,4]
>>>range(1,5,2)#代表从1到5,间隔2(不包含5)
[1,3]
>>>range(5)#代表从0到5(不包含5)
[0,1,2,3,4]
二、python篇2
1、environ()
(1)、使用python获得系统的信息时,使用os.environ()。
1. environ是一个字符串所对应环境的映射对象;
2. os.environ.keys() 显示环境变量所有的Key;
3. os.environ("value") 显示key为value时的值。
2、%s%是什么意思
(1)、该
%s 令牌允许我插入(和潜在的格式)的字符串。请注意,
%s 令牌被替换为
% 符号后传递给字符串的任何内容 ,如:
"Hello %s, my name is %s" % ('john', 'mike') # Hello john, my name is mike".
参考网址:http://www.cnblogs.com/vamei/archive/2013/03/12/2954938.html
3、os.system(cmd)与os.popen(cmd)的区别
(1)、os.system(cmd)与os.popen(cmd)的区别
python调用shell脚本或者调用系统命令,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码【0(成功),1,2】;后者的返回值是脚本执行过程的输出内容。
参考网址:https://zhidao.baidu.com/question/652164851990002245.html
参考网址:http://blog.sina.com.cn/s/blog_44a82be2010104wq.html
参考网址:http://www.cnblogs.com/zhoug2020/p/5079407.html
参考网址:http://blog.csdn.net/taohuaxinmu123/article/details/48828255
(2)、示例
command = 'ping www.baidu.com ' #可以直接在命令行中执行的命令
r = os.popen(command) #执行该命令
info = r.readlines() #读取命令行的输出到一个list
for line in info: #按行遍历
line = line.strip('\r\n')
print line
4、os.chdir()
(1)、os.chdir()方法用于改变当前工作目录到指定的路径。
用法:os.chdir(path)
#path -- 要切换到的新路径。
5、os.sep()
(1)、os.sep 可以取代操作系统特定的路径分割符。
6、os.getcwd()
(1)、os.getcwd() 方法用于返回当前工作目录
7、platform
(1)、
import platform
platform.platform() #获取操作系统名称及版本号,'Windows-7-6.1.7601-SP1'
platform.version() #获取操作系统版本号,'6.1.7601'
platform.architecture() #获取操作系统的位数,('32bit', 'WindowsPE')
platform.machine() #计算机类型,'x86'
platform.node() #计算机的网络名称,'hongjie-PC'
platform.processor() #计算机处理器信息,'x86 Family 16 Model 6 Stepping 3, AuthenticAMD'
platform.uname() #包含上面所有的信息汇总
8、反斜杠
(1)、
>>>'let\'s go'
let's go
>>>str1 = 'c:\\now'
>>>print(str1)
c:\now
(2)、当需要多个反斜杠转义时,则使用原始字符 r
>>>str1 = r'c:\now\test'
>>>print(str1)
c:\now\test
(3)、长字符串打印多行显示时,要用三引号''' '''
>>>str1 = '''长江,
黄河,
......
'''
>>>print(str1)
长江,
黄河,
.....
参考网址:http://www.cnblogs.com/followyourheart1990/p/4270566.html
参考网址:http://www.cnblogs.com/wangyongbin/p/4253805.html
9、open()
(1)、
open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
file文件位置,需要加引号;
mode文件打开模式,见表格1
表格1 参数mode的基本取值
Character | Meaning |
‘r' | open for reading (default) |
‘w' | open for writing, truncating the file first |
‘a' | open for writing, appending to the end of the file if it exists |
‘b' | binary mode |
‘t' | text mode (default) |
‘+' | open a disk file for updating (reading and writing) |
‘U' | universal newline mode (for backwards compatibility; should not be used in new code) |
参考网址:http://www.jb51.net/article/58002.htm
文件open之后、read( ):表示读取全部内容
文件open之后、readline( ):表示逐行读取
10、获取python的版本号
(1)、sys.version字符串给你提供安装的Python的版本信息。sys.version_info元组则提供一个更简单的方法来使你的程序具备Python版本要求功能。
>>> import sys
>>> sys.version
'2.3.4 (#1, Oct 26 2004, 16:42:40) \n[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)]'
>>> sys.version_info
(2, 3, 4, 'final', 0)
参考网址:http://blog.csdn.net/qustdjx/article/details/7838380
11、input()
(1)、input() 用来获取控制台的输入。如:
>>>a = input("input:")
input:123 # 输入整数
>>> type(a)
<type 'int'> # 整型
>>> a = input("input:")
input:"runoob" # 正确,字符串表达式
>>> type(a)
<type 'str'> # 字符串
参考网址:http://www.runoob.com/python/python-func-input.html
12、shutil
(1)、
shutil.rmtree("te")
copyfile( src, dst) | 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉 |
copymode( src, dst) | 只是会复制其权限其他的东西是不会被复制的 |
copystat( src, dst) | 复制权限、最后访问时间、最后修改时间 |
copy( src, dst) | 复制一个文件到一个文件或一个目录 |
copy2( src, dst) | 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西 |
copy2( src, dst) | 如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作 |
copytree(olddir,newdir,True/Flase) | 把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接 |
(2)、
shutil.copy(src, dst)
拷贝文件和权限
拷贝文件和权限
shutil.copy('f1.log', 'f2.log')
(3)、
shutil.move(src, dst)
递归的去移动文件,它类似mv命令,其实就是重命名。
递归的去移动文件,它类似mv命令,其实就是重命名。
shutil.move('folder1', 'folder3')
参考网址:http://www.cnblogs.com/wang-yc/p/5625046.html