||
一、修改Python3的搜索路径:
>>> import os
>>> print(os.getcwd())
C:\Python32
>>> os.chdir('C:/Users/lzscan/Desktop/test')
>>> print(os.getcwd())
C:\Users\lzscan\Desktop\test
>>>
1、使用getcwd()函数获得当前工作路径,当前工作路径将是python shell的可执行文件存放的路径。
2、使用chdir函数可以改变当前工作路径。
3、注意,程序中的路径中使用了”/”而不是window的“\”,这是python为了隐藏系统区别的一个地方。
二、python3对文件路径的操作。
os.path提供了一系列的函数用于文件目录的操作。
1、 os.path.join()函数:构建文件目录,例如:
>>> print(os.path.join('C:/Users/lzscan/Desktop/test/','humansize.py'))
C:/Users/lzscan/Desktop/test/humansize.py
该函数返回了一个文件路径。
>>> print(os.path.join('C:/Users/lzscan/Desktop/test','humansize.py'))
C:/Users/lzscan/Desktop/test\humansize.py
注意结果中的斜杆,window中时\,而linux中将会是/
2、 os.path.expanduser()将包含~符号(表示当前用户Home目录)的路径扩张为完整的路径。在诸如linux系统中包含Home目录非常有用。如:
>>>print(os.path.join(os.path.expanduser('~'),'diveintopython3','examples', 'humansize.py'))
c:\Users\pilgrim\diveintopython3\examples\humansize.py
3、 os.path.spli函数,分割文件路径,例如:
>>> pathname = 'C:/Users/lzscan/Desktop/test\humansize.py'
>>> os.path.split(pathname)
('C:/Users/lzscan/Desktop/test', 'humansize.py')
>>> (dirname,filename) = os.path.split(pathname)
>>> dirname
'C:/Users/lzscan/Desktop/test'
>>> filename
'humansize.py'
>>>
4、 os.path.splitext()用于分割文件的文件名和扩张名,例如:
>>> os.path.splitext('humansize.py')
('humansize', '.py')
同样用上面的方法可以将该函数的放回值放入到两个变量中。
二、罗列目录内容
glob模块可以通过编程的方法获得一个目录的内容。并且它使用熟悉的命令行下的通配符,例如:
>>> glob.glob("*.py")
['humansize.py']
函数返回目下下所有扩张名为.py的文件,当前工作路径下的文件只有一个就是之前的humansize.py,所以返回的是这个文件,如果没有查找到,则返回[]。
三、获取文件元信息
>>> data= os.stat('humansize.py')
>>> data.st_mtime
1350482973.669757
>>> import time
>>> time.localtime(data.st_mtime)
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=17, tm_hour=22, tm_min=9, tm_sec=33, tm_wday=2, tm_yday=291, tm_isdst=0)
>>>
解释:
1、 os.sta可以获得一个文件元的信息。
2、 st_mtime是文件最后修改时间,但是返回的结果却是一个你看不懂得数字,因为它表示的是从1970年1月1日的第一秒到现在的秒数。
3、 由于得到的数字没有可读性,所以使用time模块的localtime函数转化为易读的表示方式。
>>> data.st_size
954
使用st_size可以返回文件的大小,单位为字节。
四、构造绝对路径
使用os.path.realpath()函数获得文件绝对路径。
>>> print(os.path.realpath('humansize.py'))
C:\Users\lzscan\Desktop\test\humansize.py
五、列表解析:
列表解析提供了一种紧凑的方式,实现了通过对列表中每一个元素应用一个函数的方法来将一个列表映射到另一个列表。例如:
>>> a_list = [1,2,3,4]
>>> [elem * 2 for elem in a_list]
[2, 4, 6, 8]
可以在任何python表达式中使用列表解析。
同样的方法可以应用到集合和字典中。