Python 强大而易用的文件操作(转载)
在Python中可以很方便地做一些诸如浏览目录,创建文件夹,删除文件夹等等的操作。
对文件系统的访问大多通过os模块来实现,因为Python是多平台的,os模块只是前端,具体的实现还是由具体的系统来完成,这里还是主要说Windows系统。
利用os模块可以做创建文件,删除文件,重命名文件,返回文件信息等等。
os.path模块中则可以得到文件名,目录路径,或者文件是否存在,文件的大小等等信息。
要使用这个模块,就必须先把它导入。
- importos
可以用os.path模块中的isdir()函数来看看指定路径是不是存在,是不是一个目录。
- os.path.isdir('C:\Windows')
Python会返回True,表示目录存在。如果把上面的Windows改成不存在的目录比如Windows1,就会返回False
用os模块中的chdir()可以改变当前的目录,为下一步操作做准备。 改变目录后,可以用getcwd()函数得到现在的目录。 用listdir()函数可以得到目录中的所有文件和文件夹的名称,以列表的形式储存。
- os.chdir(dir) # 括号内的dir为要改变的目录,例如os.chdir('C:\Windows')
- cwd=os.getcwd() # 得到目前的目录名
- os.listdir(cwd) # cwd为要显示的目录。
以下是一个具体的应用:
- >>> importos
- >>> os.path.isdir('c:\windows')
- True
- >>> os.chdir('c:\windows')
- >>> cwd=os.getcwd()
- >>> print cwd
- c:\windows
- >>> os.listdir(cwd)
- ['Acronis', 'addins', 'AppCompat', 'AppPatch', 'assembly', 'avastSS.scr', 'AxIns
- tSV', 'bfsvc.exe', 'BitLockerDiscoveryVolumeContents', 'BOCNET', 'Boot', 'bootst
- at.dat', 'Branding', 'CSC', 'Cursors', 'debug', 'diagnostics', 'DigitalLocker',
- 'DirectX.log', 'Downloaded Installations', 'Downloaded Program Files', 'DPINST.L
- OG', 'DtcInstall.log', 'ehome', 'en-US', 'Enterprise.xml', 'explorer.exe', 'Font
- s', 'fveupdate.exe', 'Globalization', 'Help', 'HelpPane.exe', 'hh.exe', 'idmfsa.
- dll', 'IE9_main.log', 'IME', 'inf', 'Installer', 'L2Schemas', 'LiveKernelReports
- ', 'Logs', 'Media', 'mib.bin', 'Microsoft.NET', 'ModemLogs', 'msdfmap.ini', 'not
- epad.exe', 'nsreg.dat', 'ntbtlog.txt', 'Offline Web Pages', 'Options', 'Panther'
- , 'PCHEALTH', 'Performance', 'PFRO.log', 'PLA', 'PolicyDefinitions', 'Prefetch',
- 'regedit.exe', 'Registration', 'RemotePackages', 'rescache', 'Resources', 'RtlE
- xUpd.dll', 'SchCache', 'schemas', 'security', 'ServiceProfiles', 'servicing', 'S
- etup', 'setupact.log', 'setuperr.log', 'ShellNew', 'SoftwareDistribution', 'Spee
- ch', 'splwow64.exe', 'Starter.xml', 'system', 'system.ini', 'System32', 'SysWOW6
- 4', 'TAPI', 'Tasks', 'Temp', 'tracing', 'TSSysprep.log', 'twain.dll', 'twain_32'
- , 'twain_32.dll', 'twunk_16.exe', 'twunk_32.exe', 'Vss', 'Web', 'win.ini', 'Wind
- owsShell.Manifest', 'WindowsUpdate.log', 'winhlp32.exe', 'winsxs', 'WMSysPr9.prx
- ', 'write.exe', 'xinstaller.dll', 'xinstaller.exe', 'zh-CN']
- >>> os.listdir(cwd)[0]
- 'Acronis'
其他文件系统操作:
- os.mkdir('e:\\abcd') # 之所以打两个斜杠,是因为要取消\a的转义。mkdir()在这里在e盘创建一个名字为abcd的文件夹。
- os.rmdir('e:\\abcd') # rmdir()删除e盘名字为abcd的文件夹。
- os.remove(filename) # 删除文件。
- os.stat(filename) # 得到文件的信息。
os.path也有一些其他的操作,例如basename()去掉路径,返回文件名,dirname()去掉文件名,返回路径等等。到时候可以再查有关书籍。