python中ospath
‘壹’ python中的os.path.splitext是干什么用的
作用:分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作。
比如:
<spanstyle="font-size:18px;">importos
path_01='D:/User/wgy/workplace/data/notMNIST_large.tar.gar'
path_02='D:/User/wgy/workplace/data/notMNIST_large'
root_01=os.path.splitext(path_01)
root_02=os.path.splitext(path_02)
print(root_01)
print(root_02)</span>
‘贰’ python 简单示例说明os.walk和os.path.walk的不同
import os,os.path
def func(arg,dirname,names):
for filespath in names:
print os.path.join(dirname,filespath)
if __name__=="__main__":
print "==========os.walk================"
index = 1
for root,subdirs,files in os.walk("c:\\test"):
print "第",index,"层"
index += 1
for filepath in files:
print os.path.join(root,filepath)
for sub in subdirs:
print os.path.join(root,sub)
print "==========os.path.walk================"
os.path.walk("c:\\test",func,())
结果如下:
总结:
(1)两者都能实现达到同一个效果
(2)在python3中,os.path.walk要被os.walk取代了,大家尽量用os.walk
(3)os.walk明显比os.path.walk要简洁一些,起码它不需要回调函数,遍历的时候一目了然:root,subdirs,files
(4)可能你在烦恼,os.path.walk的第三个参数arg有什么用,好吧,当你os.path.walk()赋值给arg的时候,你就可以在第二个参数对应的func中用arg了
‘叁’ python os.path是类吗
path也是模块,模块也可以引入模块。
你打开os.py就可以看到,path是OS 引入的 ntpath模块,也可能是posixpath模块,os是跨平台的,不同的平台会引入相应的模块,别名都用"path"
‘肆’ python3中为什么os.path.getsize()获取的大小和windows资源管理器里文件大小不一致
os.path.getsize()返回的是path的大小,path如果是一个文件,那么就是文件大小;如果是文件夹,那么就是文件夹大小,文件夹大小是指文件夹这个数据结构在文件系统中占用的大小,NTFS文件系统中一个簇通常是4096字节,一个文件夹占用一个簇,所以NTFS中任何一个文件夹的大小都是4096字节。
‘伍’ 求python中的os.path.dirname(__file__)具体应用实例
(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如:
python d:/pythonSrc/test/test.py
那么将输出 d:/pythonSrc/test
(2).当"print os.path.dirname(__file__)"所在脚本是以相对路径被运行的, 那么将输出空目录,比如:
python test.py
那么将输出空字符串
‘陆’ python中os.path.mkdir与os.path.split怎么连用
解决方法如下:
os.mkdir(filePath)的作用是创建一个路径文件夹(如果存在的话会报错),该路径由参数filePath指定,没有os.path.mkdir;
os.path.split(fileName)的作用是分割fileName获得路径和文件名,返回值是一个列表;
正确使用形式如下:
importos
fileName=r"C:UsersYYCDesktopSS est.txt"
os.mkdir(os.path.split(fileName)[0])该段代码的作用是在C:UsersYYCDesktop路径下生成SS文件夹。
‘柒’ 一般python中的os.path.join()什么时候会用到呢
是在拼接路径的时候用的。举个例子,
os.path.join(“home”, "me", "mywork")
在Linux系统上会返回
“home/me/mywork"
在Windows系统上会返回
"home\me\mywork"
好处是可以根据系统自动选择正确的路径分隔符"/"或"\"
‘捌’ 如何解决Python中os.path.join的路径拼接问题
是在拼接路径的时候用的。举个例子,
os.path.join(“home”, "me", "mywork")
在Linux系统上会返回
“home/me/mywork"
在Windows系统上会返回
"home\me\mywork"
好处是可以根据系统自动选择正确的路径分隔符"/"或"\"
‘玖’ 如何用Python os.path.walk方法遍历搜索文件内容的操作详解
文中使用到了Python os模块和Python sys模块,这两个模块具体的使用方法请参考玩蛇网相关文章阅读。
Python os.path.walk方法遍历文件搜索内容方法代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os, sys
#代码中需要用到的方法模块导入
listonly = False
skipexts = ['.gif', '.exe', '.pyc', '.o', '.a','.dll','.lib','.pdb','.mdb'] # ignore binary files
def visitfile(fname, searchKey):
global fcount, vcount
try:
if not listonly:
if os.path.splitext(fname)[1] in skipexts:
pass
elif open(fname).read().find(searchKey) != -1:
print'%s has %s' % (fname, searchKey)
fcount += 1
except: pass
vcount += 1
#www.iplaypy.com
def visitor(args, directoryName,filesInDirectory):
for fname in filesInDirectory:
fpath = os.path.join(directoryName, fname)
if not os.path.isdir(fpath):
visitfile(fpath,args)
def searcher(startdir, searchkey):
global fcount, vcount
fcount = vcount = 0
os.path.walk(startdir, visitor, searchkey)
if __name__ == '__main__':
root=raw_input("type root directory:")
key=raw_input("type key:")
searcher(root,key)
print 'Found in %d files, visited %d' % (fcount, vcount)
‘拾’ python os和os.path模块的区别
os 包括os.path
import os 之后要 os.path 来调用
from os import path 后 直接用path来调用就可以了