1.1 python os.path模块
os.path.abspath(path) #返回绝对路径
os.path.basename(path) #返回文件名
os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。
os.path.dirname(path) #返回文件路径
os.path.exists(path) #路径存在则返回True,路径损坏返回False
os.path.lexists #路径存在则返回True,路径损坏也返回True
os.path.expanduser(path) #把path中包含的"~"和"~user"转换成用户目录
os.path.expandvars(path) #根据环境变量的值替换path中包含的”$name”和”${name}”
os.path.getatime(path) #返回最后一次进入此path的时间。
os.path.getmtime(path) #返回在此path下最后一次修改的时间。
os.path.getctime(path) #返回path的大小
os.path.getsize(path) #返回文件大小,如果文件不存在就返回错误
os.path.isabs(path) #判断是否为绝对路径
os.path.isfile(path) #判断路径是否为文件
os.path.isdir(path) #判断路径是否为目录
os.path.islink(path) #判断路径是否为链接
os.path.ismount(path) #判断路径是否为挂载点()
os.path.join(path1[, path2[, ...]]) #把目录和文件名合成一个路径
os.path.normcase(path) #转换path的大小写和斜杠
os.path.normpath(path) #规范path字符串形式
os.path.realpath(path) #返回path的真实路径
os.path.relpath(path[, start]) #从start开始计算相对路径
os.path.samefile(path1, path2) #判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2) #判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) #判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path) #把路径分割成dirname和basename,返回一个元组
os.path.splitdrive(path) #一般用在windows下,返回驱动器名和路径组成的元组
os.path.splitext(path) #分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path) #把路径分割为加载点与文件
os.path.walk(path, visit, arg) #遍历path,进入每个目录都调用visit函数,visit函数必须有
3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有
文件名,args则为walk的第三个参数
os.path.supports_unicode_filenames #设置是否支持unicode路径名
1.2 Python os.listdir
在Python os.listdir 中我们可以列出关于dir 里面的所有的相关文件与目录的具体操作方案的介绍,以及我们在实际如何用Python中的os.path.isfile()函数来判断相关路径是否为文件的操作方案,以下是文章的具体介绍。
Python判断是否为文件在Python os.listdir 函数判断某一路径是否为文件。其函数原型如下所示。
- os.path.isfile(path)
其参数含义如下。path:要进行判断的路径。以下实例判断E:\book\temp是否为文件。
- >>> import os
- >>> os.path.isfile('E:\\book\\temp')
判断是否为文件
- False
表示E:\book\temp不是文件列出目录中所有文件的方法
关键字:
- dirimport string, os, sys
- dir = '/var'
- print '----------- no sub dir'
- files = os.listdir(dir)
- for f in files:
- print dir + os.sep + f
- print '----------- all dir'
- for root, dirs, files in os.walk(dir):
- for name in files:
- print os.path.join(root, name)
前面的Python os.listdir 可以列出 dir 里面的所有文件和目录,但不包括子目录中的内容。os.walk 可以遍历下面的所有目录,包括子目录。
1.3 字符串处理
判断 – 通常返回一个bool值 |
str.isalpha() |
是否只包含文字 |
str.isdecimal() |
是否只包含数字(多语言数字) |
str.isdigit() |
是否只包含数字(0~9) |
str.isnumeric() |
是否只包含数字字符 |
str.isalnum() |
是否只包含文字和数字 |
str.isidentifier() |
是否是合法标识符 |
str.islower() |
是否是小写 |
str.isupper() |
是否全是大写 |
str.istitle() |
是否每词首字母大写 |
str.isprintable() |
是否只包含可打印字符 |
str.isspace() |
是否只包含空白字符 |
str.startswith(prefix[, start[, end]]) |
是否以prefix开头 |
str.endswith(suffix[, start[, end]]) |
是否以suffix结尾 |
修饰 – 通常返回一个修饰后的字符串 |
str.capitalize() |
返回一个首字母大写的字符串 |
str.title() |
返回每个词首字母大写的字符串 |
str.expandtabs([tabsize]) |
"\t"转换成空格 |
str.upper() |
全转换成大写 |
str.lower() |
全转换成小写 |
str.ljust(width[, fillchar]) |
左对齐,右填充 |
str.rjust(width[, fillchar]) |
右对齐,左填充 |
str.center(width[, fillchar]) |
居中,两边填充 |
str.lstrip([chars]) |
去除左空白或自定字符 |
str.rstrip([chars]) |
去除右空白或自定字符 |
str.strip([chars]) |
去除两边空白或自定字符 |
str.swapcase() |
大小写互转 |
str.zfill(width) |
左侧填充0到指定宽,一般用来修饰数字 |
查找&&替换 |
str.count(sub[, start[, end]]) |
计算[start, end)间,sub出现次数 |
str.find(sub[, start[, end]]) |
|
str.index(sub[, start[, end]]) |
|
str.rfind(sub[, start[, end]]) |
|
str.rindex(sub[, start[, end]]) |
|
str.replace(old, new[, count]) |
|
拆分&&组合 |
str.join(iterable) |
|
str.partition(sep) |
|
str.rpartition(sep) |
|
str.split([sep[, maxsplit]]) |
|
str.rsplit([sep[, maxsplit]]) |
|
str.splitlines([keepends]) |
|
转换 |
hex(x) |
|
int([number | string[, base]]) |
|
len(s) |
|
list([iterable]) |
|
oct(x) |
|
ord(c) |
|
repr(object) |
|
reversed(seq) |
|
str([object[, encoding[, errors]]]) |
|
↑TOP↑str.isalpha() – 是否只包含文字
代码 |
结果 |
print( "中国abc".isalpha() ) |
True |
print( " ".isalpha() ) |
False |
print( "123".isalpha() ) |
False |
print( "".isalpha() ) |
False |
↑TOP↑str.isdecimal() – 是否只包含十进制数字,包括多语言数字
代码 |
结果 |
print( "1234567890".isdecimal() ) |
True |
print( "\u0660".isdecimal() ) |
True |
print( "abc".isdecimal() ) |
False |
print( "".isdecimal() ) |
False |
关于其他语言的数字参见 http://www.fileformat.info/info/unicode/category/Nd/list.htm
↑TOP↑str.isdigit() – 是否只包含数字(0~9)
代码 |
结果 |
print( "1234567890".isdigit() ) |
True |
print( "\u0660".isdigit() ) |
True |
print( "abc".isdigit() ) |
False |
print( "".isdigit() ) |
False |
↑TOP↑str.isnumeric() – 是否只包含数字字符
代码 |
结果 |
print( "1234567890".isnumeric() ) |
True |
print( "\u2155".isnumeric() ) |
True |
print( "abc".isnumeric() ) |
False |
print( "".isnumeric() ) |
False |
关于数字字符参见 http://www.fileformat.info/info/unicode/category/No/list.htm
↑TOP↑str.isalnum() – 是否只包含文字和数字
代码 |
结果 |
print( "中国abc123456\u2155".isalnum() ) |
True |
print( " ".isalnum() ) |
False |
print( "\t".isalnum() ) |
False |
print( "".isalnum() ) |
False |
↑TOP↑str.isidentifier() – 是否是合法标识符
代码 |
结果 |
print( "if".isidentifier() ) |
True |
print( "中国".isidentifier() ) |
True |
print( "123".isidentifier() ) |
False |
print( "".isidentifier() ) |
False |
↑TOP↑str.islower() – 是否是小写
代码 |
结果 |
print( "abc".islower() ) |
True |
print( "aBc".islower() ) |
False |
print( "中国".islower() ) |
False |
print( "".islower() ) |
False |
↑TOP↑str.isupper() – 是否全是大写
代码 |
结果 |
print( "HELLO WORLD".istitle() ) |
True |
print( "Hello World".istitle() ) |
False |
print( "世界你好".istitle() ) |
False |
print( "".istitle() ) |
False |
↑TOP↑str.istitle() – 是否每词首字母大写
代码 |
结果 |
print( "Hello World".istitle() ) |
True |
print( "Hello world".istitle() ) |
False |
print( "hello world".istitle() ) |
False |
print( "".istitle() ) |
False |
↑TOP↑str.isprintable() – 是否只包含可打印字符
代码 |
结果 |
print( "a b".isprintable() ) |
True |
print( "".isprintable() ) |
True |
print( "abc\t".isprintable() ) |
False |
print( "abc\n".isprintable() ) |
False |
↑TOP↑str.isspace() – 是否只包含空白字符
代码 |
结果 |
print( " ".isspace() ) |
True |
print( "\t\n".isspace() ) |
True |
print( "a b".isspace() ) |
False |
print( "".isspace() ) |
False |
↑TOP↑str.startswith(prefix[, start[, end]]) – 是否以prefix开头
代码 |
结果 |
print( "中国人".startswith("中") ) |
True |
print( "中国人".startswith(("中国","我")) ) |
True |
↑TOP↑str.endswith(suffix[, start[, end]]) – 是否以suffix结尾
代码 |
结果 |
print( "中国人".endswith("人") ) |
True |
print( "中国人".endswith(("国人","我")) ) |
True |
↑TOP↑str.capitalize() – 返回一个首字母大写的字符串
代码 |
print( "the first sentence. the second sentence.".capitalize() ) |
结果 |
The first sentence. the second sentence. |
↑TOP↑str.title() – 返回每个词首字母大写的字符串
代码 |
print( "this is a title".title() ) |
结果 |
This Is A Title |
↑TOP↑str.expandtabs([tabsize]) – "\t"转换成空格
代码 |
"\t".expandtabs(8) |
结果 |
' ' |
↑TOP↑str.upper() – 全转换成大写
代码 |
print( "abc".upper() ) |
结果 |
ABC |
↑TOP↑str.lower() – 全转换成小写
代码 |
print( "ABC".upper() ) |
结果 |
abc |
↑TOP↑str.ljust(width[, fillchar]) – 左对齐,右填充
代码 |
print( "我".ljust(4,"们") ) |
结果 |
我们们们 |
↑TOP↑str.rjust(width[, fillchar]) – 右对齐,左填充
代码 |
print( "我".rjust(4,"=") ) |
结果 |
===我 |
↑TOP↑str.center(width[, fillchar]) – 居中,两边填充
代码 |
print( "我是分割线".center(30, "=") ) |
结果 |
============我是分割线============= |
↑TOP↑str.lstrip([chars]) – 去除左空白或自定字符
代码 |
' spacious '.lstrip() |
结果 |
'spacious ' |
代码 |
'www.example.com'.lstrip('cmowz.') |
结果 |
'example.com' |
↑TOP↑str.rstrip([chars]) – 去除右空白或自定字符
代码 |
' spacious '.rstrip() |
结果 |
' spacious' |
代码 |
'mississippi'.rstrip('ipz') |
结果 |
'mississ' |
↑TOP↑str.strip([chars]) – 去除两边空白或自定字符
代码 |
' spacious '.strip() |
结果 |
'spacious' |
代码 |
'www.example.com'.strip('cmowz.') |
结果 |
'example' |
↑TOP↑str.swapcase() – 大小写互转
代码 |
print( "Abc".swapcase() ) |
结果 |
aBC |
↑TOP↑str.zfill(width) – 左侧填充0到指定宽,一般用来修饰数字
代码 |
print( "15".zfill(8) ) |
结果 |
00000015 |
代码 |
print( "-15".zfill(8) ) |
结果 |
-0000015 |
↑TOP↑str.count(sub[, start[, end]]) – 计算[start, end)间,sub出现次数
代码 |
print( "abababab" .count("abab" ) |
结果 |
2 |
注:非重叠计数,因此结果是2而不是3
1.4 datetime.datetime
获取当前时间,并通过字符串输出。
格式为:%Y-%m-%d %H:%M:%S'
datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S' )
获取当前时间,但只保留日期
datetime.datetime.now().date()
将字符串转换为datetime类型
输入字符串格式为:'%Y-%m-%d'
datetime.datetime.strptime(time,'%Y-%m-%d')
print 'start at:',datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f' )
print 'start at:',time.strftime('%Y-%m-%d %H:%M:%S.%f', time.localtime(time.time()))
附录:
格式化符号汇总
%a 星期几的简写 Weekday name, abbr.
%A 星期几的全称 Weekday name, full
%b 月分的简写 Month name, abbr.
%B 月份的全称 Month name, full
%c 标准的日期的时间串 Complete date and time representation
%d 十进制表示的每月的第几天 Day of the month
%H 24小时制的小时 Hour (24-hour clock)
%I 12小时制的小时 Hour (12-hour clock)
%j 十进制表示的每年的第几天 Day of the year
%m 十进制表示的月份 Month number
%M 十时制表示的分钟数 Minute number
%S 十进制的秒数 Second number
%U 第年的第几周,把星期日做为第一天(值从0到53)Week number (Sunday first weekday)
%w 十进制表示的星期几(值从0到6,星期天为0)weekday number
%W 每年的第几周,把星期一做为第一天(值从0到53) Week number (Monday first weekday)
%x 标准的日期串 Complete date representation (e.g. 13/01/08)
%X 标准的时间串 Complete time representation (e.g. 17:02:10)
%y 不带世纪的十进制年份(值从0到99)Year number within century
%Y 带世纪部分的十制年份 Year number
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。Name of time zone
%% 百分号