Python 脚本相关知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

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)、返回值:字符串、列表、字典、元组等元素的长度


6、open()函数

(1)、open(路径+文件名,读写模式)
读写模式: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 <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 次。


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]会对返回的列表进行索引,选取倒数第二项


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 -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
返回值:
该方法没有返回值,但是会对列表的对象进行排序。
实例:
#!/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,最后分析一个好玩儿的冒泡程序。
这里记录一下:
>>>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命令,其实就是重命名。
shutil.move('folder1', 'folder3')
参考网址:http://www.cnblogs.com/wang-yc/p/5625046.html




猜你喜欢

转载自blog.csdn.net/listener51/article/details/77116264