1.python的文件读法在windows和Linux/os X上不一样,一个是backslash,一个是forward flash,为了统一,使用os.path.join()
import os
os.path.join(‘usr’,’bin’,’spam’)
2.修改文件路径;the current working directory
cwd文件夹
任何不是根目录里的文件都可以假设在pwd文件夹中,用os.getcwd()获取文件路径。同时也可以用os.chdir()更换文件路径;
import os
os.getcwd()
'C:\\Python34'
os.chdir('C:\\Windows\\System32')
os.getcwd()
'C:\\Windows\\System32'
3.创建文件
import os
os.makedirs('C:\\delicious\\walnut\\waffles')
4.相对路径绝对路径
#查看文件的绝对路径
os.path.abspath(path)
os.path.abspath('.\\Scripts')
'C:\\Python34\\Scripts'
#确定()内内容是否是绝对路径
os.path.isabs('.')
False
os.path.isabs(os.path.abspath('.'))
True
#查看一个文件对于另一个文件的相对路径
os.path.relpath(‘文件名’‘待比较文件名’)
>>> os.path.relpath('C:\\Windows', 'C:\\')
'Windows'
>>> os.path.relpath('C:\\Windows', 'C:\\spam\\eggs')
'..\\..\\Windows'
>>> os.getcwd() 'C:\\Python34'
5.基础名字和文件名
path = 'C:\\Windows\\System32\\calc.exe'
os.path.basename(path)
'calc.exe'
os.path.dirname(path)
'C:\\Windows\\System32'
如果希望将文件的dirname, basename放在同一个字符串里:
>>> calc = 'C:\\Windows\\System32\\calc.exe'
>>> os.path.split(calc)
('C:\\Windows\\System32', 'calc.exe')
等同于
(os.path.dirname(calc), os.path.basename(calc))
所以split是个缩略词,所以比较好。
如果想将路径全部拆开,可以使用
>>>calc.split(os.path.sep)
['C:', 'Windows', 'System32', 'calc.exe']
如果是Linux和OS X的路径
则根目录会用空白表示,例如
>>>'/usr/bin'.split(os.path.sep)
['', 'usr', 'bin']
查看文件大小和文件目录
查看文件大小:os.path.getsize('/user/rachel/calc.exe')
查看文件目录(注意使用该函数是在os下,而不是os.path下):os.listdir('/user/user/rachel')
注意:getsize()只能获得一个文件的大小,如果想获得一个文件夹的大小,可以将os.path.getsize()和os.listdir()和os.path.join()一起用。
>>> totalSize = 0
>>> for filename in os.listdir('C:\\Windows\\System32'):
totalSize = totalSize + os.path.getsize(os.path.join('C:\\Windows\\System32', filename))
>>> print(totalSize)
1117846456
1.验证路径是否正确,2.是否是一个文件,3,是否是文件夹
os.path.isdir()#是否为文件夹
os.path.isfile()#是否为文件
os.path.exists()#是否存在
文件的打开,阅读,书写
文件打开:
#如果是windows
>>> helloFile = open('C:\\Users\\your_home_folder\\hello.txt')
#如果是os X
>>> helloFile = open('/Users/your_home_folder/hello.txt')
文件阅读:
helloContent = helloFile.read()
print helloContent
文件阅读且保留file中跨行的格式:
例如hello.txt存在很多行
When, in disgrace with fortune and men's eyes,
I all alone beweep my outcast state,
And trouble deaf heaven with my bootless cries,
And look upon myself and curse my fate,
sonnetFile = open('sonnet29.txt')
sonnetFile.readlines()
[When, in disgrace with fortune and men's eyes,\n', ' I all alone beweep my
outcast state,\n', And trouble deaf heaven with my bootless cries,\n', And
look upon myself and curse my fate,']