<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Townes &#187; python文件操作</title>
	<atom:link href="https://thetownes.coolpage.biz/?feed=rss2&#038;tag=python%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C" rel="self" type="application/rss+xml" />
	<link>https://thetownes.coolpage.biz</link>
	<description>本站已转移至：http://www.thetownes.info</description>
	<lastBuildDate>Thu, 01 Aug 2013 11:49:56 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2</generator>
		<item>
		<title>Python常见文件操作的函数示例</title>
		<link>https://thetownes.coolpage.biz/?p=479</link>
		<comments>https://thetownes.coolpage.biz/?p=479#comments</comments>
		<pubDate>Thu, 01 Aug 2013 03:48:50 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[python文件操作]]></category>

		<guid isPermaLink="false">http://thetownes.coolpage.biz/?p=479</guid>
		<description><![CDATA[# -*-coding:utf8 -*-&#160; &#160; &#8221 &#8230; <a href="https://thetownes.coolpage.biz/?p=479">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p># -*-coding:utf8 -*-&nbsp;</p>
<p>&nbsp;</p>
<p>&#8221;&#8221;&#8217;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.2cto.com/kf/web/Python/" target="_blank">Python</a>常见文件操作示例</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; os.path 模块中的路径名访问函数</p>
<p>&nbsp;&nbsp;&nbsp; 分隔</p>
<p>&nbsp;&nbsp;&nbsp; basename() 去掉目录路径, 返回文件名</p>
<p>&nbsp;&nbsp;&nbsp; dirname() 去掉文件名, 返回目录路径</p>
<p>&nbsp;&nbsp;&nbsp; join() 将分离的各部分组合成一个路径名</p>
<p>&nbsp;&nbsp;&nbsp; split() 返回(dirname(), basename()) 元组</p>
<p>&nbsp;&nbsp;&nbsp; splitdrive() 返回(drivename, pathname) 元组</p>
<p>&nbsp;&nbsp;&nbsp; splitext() 返回(filename, extension) 元组</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 信息</p>
<p>&nbsp;&nbsp;&nbsp; getatime() 返回最近访问时间</p>
<p>&nbsp;&nbsp;&nbsp; getctime() 返回文件创建时间</p>
<p>&nbsp;&nbsp;&nbsp; getmtime() 返回最近文件修改时间</p>
<p>&nbsp;&nbsp;&nbsp; getsize() 返回文件大小(以字节为单位)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 查询</p>
<p>&nbsp;&nbsp;&nbsp; exists() 指定路径(文件或目录)是否存在</p>
<p>&nbsp;&nbsp;&nbsp; isabs() 指定路径是否为绝对路径</p>
<p>&nbsp;&nbsp;&nbsp; isdir() 指定路径是否存在且为一个目录</p>
<p>&nbsp;&nbsp;&nbsp; isfile() 指定路径是否存在且为一个文件</p>
<p>&nbsp;&nbsp;&nbsp; islink() 指定路径是否存在且为一个符号链接</p>
<p>&nbsp;&nbsp;&nbsp; ismount() 指定路径是否存在且为一个挂载点</p>
<p>&nbsp;&nbsp;&nbsp; samefile() 两个路径名是否指向同个文件</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; os.path.isdir(name):判断name是不是一个目录，name不是目录就返回false</p>
<p>&nbsp;&nbsp;&nbsp; os.path.isfile(name):判断name是不是一个文件，不存在name也返回false</p>
<p>&nbsp;&nbsp;&nbsp; os.path.exists(name):判断是否存在文件或目录name</p>
<p>&nbsp;&nbsp;&nbsp; os.path.getsize(name):获得文件大小，如果name是目录返回0L</p>
<p>&nbsp;&nbsp;&nbsp; os.path.abspath(name):获得绝对路径</p>
<p>&nbsp;&nbsp;&nbsp; os.path.normpath(path):规范path字符串形式</p>
<p>&nbsp;&nbsp;&nbsp; os.path.split(name):分割文件名与目录（事实上，如果你完全使用目录，它也会将最后一个目录作为文件名而分离，同时它不会判断文件或目录是否存在）</p>
<p>&nbsp;&nbsp;&nbsp; os.path.splitext():分离文件名与扩展名</p>
<p>&nbsp;&nbsp;&nbsp; os.path.join(path,name):连接目录与文件名或目录</p>
<p>&nbsp;&nbsp;&nbsp; os.path.basename(path):返回文件名</p>
<p>&nbsp;&nbsp;&nbsp; os.path.dirname(path):返回文件路径</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; os模块中的文件操作：</p>
<p>&nbsp;&nbsp;&nbsp; os 模块属性</p>
<p>&nbsp;&nbsp;&nbsp; linesep 用于在文件中分隔行的字符串</p>
<p>&nbsp;&nbsp;&nbsp; sep 用来分隔文件路径名的字符串</p>
<p>&nbsp;&nbsp;&nbsp; pathsep 用于分隔文件路径的字符串</p>
<p>&nbsp;&nbsp;&nbsp; curdir 当前工作目录的字符串名称</p>
<p>&nbsp;&nbsp;&nbsp; pardir (当前工作目录的)父目录字符串名称</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 1.重命名：os.rename(old, new)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 2.删除：os.remove(file)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 3.列出目录下的文件：os.listdir(path)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 4.获取当前工作目录：os.getcwd()</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 5.改变工作目录：os.chdir(newdir)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 6.创建多级目录：os.makedirs(r&#8221;c:\python\test&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 7.创建单个目录：os.mkdir(&#8220;test&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 8.删除多个目录：os.removedirs(r&#8221;c:\python&#8221;) #删除所给路径最后一个目录下所有空目录。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 9.删除单个目录：os.rmdir(&#8220;test&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 10.获取文件属性：os.stat(file)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 11.修改文件权限与时间戳：os.chmod(file)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 12.执行操作<a href="http://www.2cto.com/os/" target="_blank">系统</a>命令：os.system(&#8220;dir&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 13.启动新进程：os.exec(), os.execvp()</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 14.在后台执行程序：osspawnv()</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 15.终止当前进程：os.exit(), os._exit()</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 16.分离文件名：os.path.split(r&#8221;c:\python\hello.py&#8221;) &#8211;&gt; (&#8220;c:\\python&#8221;, &#8220;hello.py&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 17.分离扩展名：os.path.splitext(r&#8221;c:\python\hello.py&#8221;) &#8211;&gt; (&#8220;c:\\python\\hello&#8221;, &#8220;.py&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 18.获取路径名：os.path.dirname(r&#8221;c:\python\hello.py&#8221;) &#8211;&gt; &#8220;c:\\python&#8221;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 19.获取文件名：os.path.basename(r&#8221;r:\python\hello.py&#8221;) &#8211;&gt; &#8220;hello.py&#8221;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 20.判断文件是否存在：os.path.exists(r&#8221;c:\python\hello.py&#8221;) &#8211;&gt; True</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 21.判断是否是绝对路径：os.path.isabs(r&#8221;.\python\&#8221;) &#8211;&gt; False</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 22.判断是否是目录：os.path.isdir(r&#8221;c:\python&#8221;) &#8211;&gt; True</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 23.判断是否是文件：os.path.isfile(r&#8221;c:\python\hello.py&#8221;) &#8211;&gt; True</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 24.判断是否是链接文件：os.path.islink(r&#8221;c:\python\hello.py&#8221;) &#8211;&gt; False</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 25.获取文件大小：os.path.getsize(filename)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 26.*******：os.ismount(&#8220;c:\\&#8221;) &#8211;&gt; True</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 27.搜索目录下的所有文件：os.path.walk()</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; shutil模块对文件的操作：</p>
<p>&nbsp;&nbsp;&nbsp; 1.复制单个文件：shultil.copy(oldfile, newfle)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 2.复制整个目录树：shultil.copytree(r&#8221;.\setup&#8221;, r&#8221;.\backup&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 3.删除整个目录树：shultil.rmtree(r&#8221;.\backup&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 临时文件的操作：</p>
<p>&nbsp;&nbsp;&nbsp; 1.创建一个唯一的临时文件：tempfile.mktemp() &#8211;&gt; filename</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 2.打开临时文件：tempfile.TemporaryFile()</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 内存文件（StringIO和cStringIO）操作</p>
<p>&nbsp;&nbsp;&nbsp; [4.StringIO] #cStringIO是StringIO模块的快速实现模块</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 1.创建内存文件并写入初始数据：f = StringIO.StringIO(&#8220;Hello world!&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 2.读入内存文件数据：print f.read() #或print f.getvalue() &#8211;&gt; Hello world!</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp;&nbsp;3.想内存文件写入数据：f.write(&#8220;Good day!&#8221;)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 4.关闭内存文件：f.close()</p>
<p>&#8221;&#8217;&nbsp;</p>
<p>import os&nbsp;</p>
<p>import os.path&nbsp;</p>
<p>import unittest&nbsp;</p>
<p>import time&nbsp;</p>
<p>#import pygame&nbsp;</p>
<p>&nbsp;</p>
<p>class PyFileCommonOperatorTest(unittest.TestCase):&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; def __init__(self):&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;&#8221;"constructor&#8221;"&#8221;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; def test01(self):&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print os.linesep&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print os.sep&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print os.pathsep&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print os.curdir&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print os.pardir&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print os.getcwd()&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &#8216;unittest here&#8217;&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>if __name__ == &#8220;__main__&#8221;:&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; t = PyFileCommonOperatorTest()&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; t.test01()&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>#读文件的写法：&nbsp;</p>
<p>#读文本文件：&nbsp;&nbsp;</p>
<p>input = open(&#8216;data&#8217;, &#8216;r&#8217;)#第二个参数是默认的，可以不加&nbsp;</p>
<p>#读二进制文件：&nbsp;&nbsp;</p>
<p>input = open(&#8216;data&#8217;, &#8216;rb&#8217;)&nbsp;</p>
<p>#读取所有文件内容：&nbsp;</p>
<p>open(&#8216;xxoo.txt&#8217;).read()&nbsp;</p>
<p>#读取固定字节&nbsp;</p>
<p>open(&#8216;abinfile&#8217;, &#8216;rb&#8217;).read(100)&nbsp;</p>
<p>#读每行&nbsp;</p>
<p>file_object.readlines()&nbsp; &nbsp;</p>
<p>&nbsp;</p>
<p>作者 scelong</p>
]]></content:encoded>
			<wfw:commentRss>https://thetownes.coolpage.biz/?feed=rss2&#038;p=479</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
