
列表前面加星号作用是将列表中所有元素解开成独立的参数
a=[1,2,3]
print(*a)
输出:
1 2 3
2.从源码安装包
- 方法1:
pip install
pip install git+https://github.com/Robpol86/terminaltables.git
- 方法2:
clone and install
git clone https://github.com/Robpol86/terminaltables.git
cd terminaltables
python setup.py install
3.read()、readline()、readlines()
读取文件的三个方法:read()、readline()、readlines()。均可接受一个变量用以限制每次读取的数据量,但通常不使用。
- read方法
特点是:读取整个文件,将文件内容放到一个字符串变量中。
劣势是:如果文件非常大,尤其是大于内存时,无法使用read()方法。
示例:
兼职模特联系方式.txt文本的内容如下:
吴迪 177 70 13888888
王思 170 50 13988888
白雪 167 48 13324434
黄蓉 166 46 13828382
read()直接读取字节到字符串中,包括了换行符
>>> file = open('兼职模特联系方式.txt', 'r')
>>> a = file.read()
>>> a
'吴迪 177 70 13888888\n王思 170 50 13988888\n白雪 167 48 13324434\n黄蓉 166 46 13828382'
readline方法
特点:readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存
缺点:比readlines慢得多
readline() 读取整行,包括行结束符,并作为字符串返回
>>> file = open('兼职模特联系方式.txt', 'r')
>>> a = file.readline()
>>> a
输出
'吴迪 177 70 13888888\n'
- readlines方法
readlines()读取所有行然后把它们作为一个字符串列表返回。
>>> file = open('兼职模特联系方式.txt', 'r')
>>> a = file.readlines()
>>> a
['吴迪 177 70 13888888\n', '王思 170 50 13988888\n', '白雪 167 48 13324434\n', '黄蓉 166 46 13828382']
4. python[:]以及[::]用法
[m:n] #切片 *** 作,取a[m]~a[n-1]之间的内容,m\n可以为负,m>n时返回空
[m::n] #从a[m]开始,每跳|n|个取一个,当n为负时逆序取数。 当n为正的时候,m为空则默认m=0,n为负时,m为空则默认为-1
In [1]: import numpy as np
In [2]: a = np.random.rand(10)
In [3]: a
Out[3]:
array([0.56206001, 0.93252115, 0.24078108, 0.36059548, 0.1946579 ,
0.35166964, 0.77443621, 0.97699886, 0.30177723, 0.10688389])
In [4]: a[3:2] # m>n返回空
Out[4]: array([], dtype=float64)
In [5]: a[::-1] # 从a[-1]开始逆序取数,间隔为1,即逆序所有
Out[5]:
array([0.10688389, 0.30177723, 0.97699886, 0.77443621, 0.35166964,
0.1946579 , 0.36059548, 0.24078108, 0.93252115, 0.56206001])
In [6]: a[3::-1] # 从a[3]开始逆序取数,间隔为1
Out[6]: array([0.36059548, 0.24078108, 0.93252115, 0.56206001])
In [7]: a[8::-2] # 从a[8]开始逆序取数,间隔为2
Out[7]: array([0.30177723, 0.77443621, 0.1946579 , 0.24078108, 0.56206001])
In [8]: a[8::-3] # 从a[8]开始逆序取数,间隔为3
Out[8]: array([0.30177723, 0.35166964, 0.24078108])
In [9]: a[3::1] # 从a[3]开始正序取数,间隔为1
Out[9]:
array([0.36059548, 0.1946579 , 0.35166964, 0.77443621, 0.97699886,
0.30177723, 0.10688389])
In [10]: a[3::2] # 从a[3]开始正序取数,间隔为2
Out[10]: array([0.36059548, 0.35166964, 0.97699886, 0.10688389])
In [11]: a[3::3] # 从a[3]开始正序取数,间隔为3
Out[11]: array([0.36059548, 0.77443621, 0.10688389])
In [12]: a[::2]
Out[12]: array([0.56206001, 0.24078108, 0.1946579 , 0.77443621, 0.30177723])
In [13]: a[::-2]
Out[13]: array([0.10688389, 0.97699886, 0.35166964, 0.36059548, 0.93252115])
5. 下划线_的变量和函数命名的用法
- 前后均带有双下划线__的命名
一般用于特殊方法的命名,用来实现对象的一些行为或者功能,比如__new__()方法用来创建实例,init()方法用来初始化对象,x + y *** 作被映射为方法x.add(y),序列或者字典的索引 *** 作x[k]映射为x.getitem(k),len()、str()分别被内置函数len()、str()调用等等。
仅开头带双下划线__的命名
用于对象的数据封装,以此命名的属性或者方法为类的私有属性或者私有方法。
class Foo(object):
def __init__(self):
self.__name = 'private name'
def getname(self):
return self.__name
def __spam(self):
print 'private method'
def bar(self):
self.__spam()
如果在外部直接访问私有属性或者方法:
>>> f = Foo()
>>> f.__name
Traceback (most recent call last):
File "" , line 1, in <module>
f.__name
AttributeError: 'Foo' object has no attribute '__name'
>>> f.__spam()
Traceback (most recent call last):
File "" , line 1, in <module>
f.__spam()
AttributeError: 'Foo' object has no attribute '__spam'
是不可行的,这就起到了隐藏数据的作用,但是这种实现机制并不是很严格,机制是通过自动"变形"实现的,类中所有以双下划线开头的名称__name都会自动变为"_类名__name"的新名称:
>>> f._Foo__name
'private name'
>>> f._Foo__spam()
private method
这样就可以访问了。
这种机制可以阻止继承类重新定义或者更改方法的实现,比如,定义一个Foo的派生类:
class Goo(Foo):
def __spam(self):
print 'private method of Goo'
重写了__spam方法,运行:
>>> g = Goo()
>>> g.bar()
private method
调用bar()方法的时候依然执行的是Foo类的__spam()方法,因为在bar()方法的实现中,self.__spam()已自动变形为self._Foo__spam(),Goo继承的bar()方法也是如此。
以单下划线_开头的命名
一般用于模块中的"私有"定义的命名。
from module import * 语句用于加载模块中的所有名称,要控制导入的名称,一种方法是定义列表__all__,只有在__all__中的名称才能通过*导入,
另一种方法就是以单下划线开头命名定义了,这种定义不会被*导入。
当然,在类中也可以用单下划线开头来命名属性或者方法,这只是表示类的定义者希望这些属性或者方法是"私有的",但实际上并不会起任何作用。
连接:https://blog.csdn.net/zk0272/article/details/83105574
7.os常见用法os模块:os模块在python中包含普遍的 *** 作系统功能,下面列出了一些在os模块中比较有用的部分。
- os.sep可以取代 *** 作系统特定的路径分隔符。windows下为 “\”
- os.name字符串指示你正在使用的平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。
- os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
- os.getenv()获取一个环境变量,如果没有返回none
- os.putenv(key, value)设置一个环境变量值
- os.listdir(path)返回指定目录下的所有文件和目录名。
- os.remove(path)函数用来删除一个文件。
- os.system(command)函数用来运行shell命令。
- os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’。
- os.curdir:返回当前目录(‘.’)
- os.chdir(dirname):改变工作目录到dirname
os.path常用方法:
- os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
- os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cd
- os.curdir 返回当前目录: (‘.’)
- os.pardir 获取当前目录的父目录字符串名:(‘…’)
- os.makedirs(‘dirname1/dirname2’) 可生成多层递归目录
- os.removedirs(‘dirname1’) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
- os.mkdir(‘dirname’) 生成单级目录;相当于shell中mkdir dirname
- os.rmdir(‘dirname’) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
- os.listdir(‘dirname’) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
- os.remove() 删除一个文件
- os.rename(“oldname”,“newname”) 重命名文件/目录
- os.stat(‘path/filename’) 获取文件/目录信息
- os.sep 输出 *** 作系统特定的路径分隔符,win下为"\“,Linux下为”/"
- os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
- os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
- os.name 输出字符串指示当前使用平台。win->‘nt’; Linux->‘posix’
- os.system(“bash command”) 运行shell命令,直接显示
- os.environ 获取系统环境变量
- os.path.abspath(path) 返回path规范化的绝对路径
- os.path.split(path) 将path分割成目录和文件名二元组返回
- os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
- os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
- os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
- os.path.isabs(path) 如果path是绝对路径,返回True
- os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
- os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
- os.path.join(path1[, path2[, …]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
- os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
- os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
- os.path.getsize(path) 返回path的大小
- os.path.normpath(os.path.join(os.path.abspath(file),‘…’,‘…’,‘…’))表示返回当前文件的上上上层目录
参考链接:https://www.cnblogs.com/lixiaoting/p/11136866.html
python对文件夹的 *** 作汇总,方便查阅使用
- 遍历指定目录,显示目录下的所有文件名
- 遍历文件夹及其子文件夹的所有文件,获取文件的列表
- Python 遍历子文件和所有子文件夹 输出字符串
参考: http://blog.csdn.net/Qian_F/article/details/9896283
- 对文件批量更名
https://www.cnblogs.com/lixiaoting/archive/2004/01/13/11131289.html
10. python切片-截取-逆序截取https://blog.csdn.net/HeyShHeyou/article/details/82665453
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)