您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > python文件夹操作
python对文件文件夹的操作博客分类:pythonPythonPython代码#-*-coding:UTF-8-*-importoss=os.getcwd()#获取当前目录printsos.chdir(E:\\PyWk\\nodepad_py)#更改当前目录fpath,fname=os.path.split(E:\\PyWk\\nodepad_py\\09.py)#将一个路径分解为目录名和文件名printfpath,fnamefpathandname,fext=os.path.splitext(E:\\PyWk\\nodepad_py\\09.py)#分解文件名的扩展名printfpathandname,fexta=os.path.exists(E:\\PyWk\\nodepad_py\\erro.py)#判断文件或目录是否存在printab=os.path.isfile(E:\\PyWk\\nodepad_py\\09.py)#判断是否文件printbc=os.path.isdir(E:\\PyWk\\nodepad_py\\09.py)#判断是否是目录printclist=os.listdir(E:\\PyWk\\nodepad_py)#获取目录下的文件以及子目录列表printlist#os.makedirs(c:\\test1\\test2\\test3)#创建子目录#f=open(c:\\test1\\test2\\test3\\test4.txt,'w')#创建一个空文件#f.close()#os.rmdir(c:\\test1\\test2\\test3)#删除子目录#os.remove(c:\\test1\\test2\\test3\\test4.txt)#删除文件os.chdir('c:\\test1\\test2\\test3')printos.getcwd()list=os.listdir(os.getcwd())printlistos.rename(test4.txt,newtest4.txt)Python代码#-*-coding:UTF-8-*-#显示某一目录下所有文件夹importosdefgetDirList(p):p=str(p)ifp=='':return[]p=p.replace('\\','\\\\')ifp[-1]!=\\:p=p+\\a=os.listdir(p)b=[xforxinaifos.path.isdir(p+x)]returnbprintgetDirList(c:\\)Python代码#-*-coding:UTF-8-*-#获取某目录下所有文件列表importosdefgetFileList(p):p=str(p)ifp==:return[]p=p.replace('\\','\\\\')ifp[-1]!='\\':p=p+'\\'a=os.listdir(p)b=[xforxinaifos.path.isfile(p+x)]returnbprintgetFileList(c:\\)解析❝Ourimaginationisstretchedtotheutmost,not,asinfiction,toimaginethingswhicharenotreallythere,butjusttocomprehendthosethingswhichare.❞—RichardFeynman‣显示目录深入#这一章节将围绕一个非常强大的技术向你介绍列表解析,字典解析和集合解析这三个概念。但是,我要先打个岔介绍两个帮助你浏览本地文件系统的模块。⁂处理文件和目录#Python3带有一个模块叫做os,代表“操作系统(operatingsystem)。”os模块包含非常多的函数用于获取(和修改)本地目录、文件进程、环境变量等的信息。Python尽最大的努力在所有支持的操作系统上提供一个统一的API,这样你就可以在保证程序能够在任何的计算机上运行的同时尽量少的包含平台特定的代码。当前工作目录#当你刚刚开始学习Python的时候,你将花大量的时间在PythonShell上。在整本书中,你将一直看见类似下面的例子:在examples目录导入某一个模块调用模块的某一个函数解释输出结果总是有一个当前工作目录如果你不知道当前工作目录,第一步很可能会得到一个ImportError。为什么?因为Python将在导入搜索路径中查找示例模块,但是由于examples目录没有包含在搜索路径中,查找将失败。你可以通过下面两个方法之一来解决这个问题:将examples目录加入到导入搜索路径中将当前工作目录切换到examples目录Python在任何时候都在暗地里记住了当前工作目录这个属性。无论你是在PythonShell中,还是在命令行运行你自己的Python脚本,抑或是在Web服务器上运行PythonCGI脚本,当前工作目录总是存在。os模块提供了两个函数处理当前工作目录跳过该代码清单[隐藏][在新窗口中打开]importos①print(os.getcwd())②C:\Python31os.chdir('/Users/pilgrim/diveintopython3/examples')③print(os.getcwd())④C:\Users\pilgrim\diveintopython3\examples①os是Python自带的;你可以在任何时间,任何地方导入它。②使用os.getcwd()函数获得当前工作目录。当你运行一个图形化的PythonShell时,当前工作目录默认将是PythonShell的可执行文件所在的目录。在Windows上,这个目录取决于你将Python安装在哪里;默认位置是c:\Python31。如果你通过命令行运行PythonShell,当前工作目录是你运行python3时所在的目录。③使用os.chdir()函数改变当前工作目录④运行os.chdir()函数时,即使在Windows上,我也总是使用Linux风格的路径(正斜杠,没有盘符)。这就是Python尝试隐藏操作系统差异的一个地方。处理文件名和目录名#既然我们说到了目录,我得指出os.path模块。os.path模块包含了操作文件名和目录名的函数.跳过该代码清单[隐藏][在新窗口中打开]importosprint(os.path.join('/Users/pilgrim/diveintopython3/examples/','humansize.py'))①/Users/pilgrim/diveintopython3/examples/humansize.pyprint(os.path.join('/Users/pilgrim/diveintopython3/examples','humansize.py'))②/Users/pilgrim/diveintopython3/examples\humansize.pyprint(os.path.expanduser('~'))③c:\Users\pilgrimprint(os.path.join(os.path.expanduser('~'),'diveintopython3','examples','humansize.py'))④c:\Users\pilgrim\diveintopython3\examples\humansize.py①os.path.join()函数从一个或多个路径片段中构造一个路径名。在这个例子中,它仅仅是简单的拼接字符串.②这个例子稍微复杂一点,在和文件名拼接前,join函数给路径名添加一个额外的斜杠。由于我在Windows上写这个例子,这个斜杠是一个反斜杠而不是正斜杠。如果你在Linux或者MacOSX上重现这个例子,你将会看见正斜杠.无论你使用哪种形式的斜杠,Python都可以访问到文件。③os.path.expanduser()用来将包含~符号(表示当前用户Home目录)的路径扩展为完整的路径。在任何有Home目录概念的操作系统上(包括Linux,MacOSX和Windows),这个函数都能工作。返回的路径不以斜杠结尾,但是os.path.join()并不介意这一点。④结合这些技术,你可以很方便的构造出用户Home目录下的文件和目录的路径。os.path.join()可以接受任何数量的参数。当我发现这一点时我大喜过望,因为在一门新的语言中构造我的工具箱时,addSlashIfNecessary()总是我不得不写的愚蠢的小函数之一。不要在Python中写这个愚蠢的小函数,聪明的人们已经帮你考虑过这个问题了。os.path也包含用于分割完整路径名,目录名和文件名的函数跳过该代码清单[隐藏][在新窗口中打开]pathname='/Users/pilgrim/diveintopython3/examples/humansize.py'os.path.split(pathname)①('/Users/pilgrim/diveintopython3/examples','humansize.py')(dirname,filename)=os.path.split(pathname)②dirname③'/Users/pilgrim/diveintopython3/examples'filename④'humansize.py'(shortname,extension)=os.path.splitext(filename)⑤shortname'humansize'extension'.py'①split函数分割一个完整路径并返回目录和文件名。②还记得我说过在函数返回多个值时应该使用多变量赋值吗?os.path.split()函数正是这样做的。将split函数的返回值赋值给一个二元组。每个变量获得了返回元组中的对应元素的值。③第一个变量dirname,获得了os.path.split()函数返回元组中的第一个元素,文件所在的目录。④第二个变量filename,获得了os.path.split()函数返回元组中的第二个元素,文件名。⑤os.path也包含os.path.splitext()函数,它分割一个文件名并返回短文件名和扩展名。可以使用同样的技术将它们的值赋值给不同的变量。罗列目录内容#glob模块是Python标准库中的另一个工具,它可以通过编程的方法获得一个目录的内容,并且它使用熟悉的命令行下的通配符。glob模块使用shell风格的通配符。跳过该代码清单[隐藏][在新窗口中打开]os.chdir('/Users/pilgrim/diveintopython3/')importglobglob.glob('examples/*.xml')①['examples\\feed-broken.xml','examples\\feed-ns0.xml','examples\\feed.xml']os.chdir('examples/')②glob.glob('*test*.py')③['alphameticstest.py','pluraltest1.py','pluraltest2.py','pluraltest3.py','pluraltest4.py','pluraltest5.py','pluraltest6.py','romantest1.py','romantest10.py','romantest2.py','romantest3.py','
本文标题:python文件夹操作
链接地址:https://www.777doc.com/doc-4209893 .html