os.path.exists( )
os.path.exists( )
Python的类型与运算-文件(四)
因为w方式对以存在的文件会清楚后写入,但有的时候我们不想覆盖原有的
文件,这个时候我们可以使用如下方式:
>>> if not os.path.exists('somefile'):
... with open('somefile', 'wt') as f:
... f.write('Hello\n')
... else:
... print('File already exists!')
...
>>> if not os.path.exists('somefile'):
... with open('somefile', 'wt') as f:
... f.write('Hello\n')
... else:
... print('File already exists!')
...
File already exists!
这里我们也有别的方法可以用来判断是否文件存在,不存在时写入(此方法
紧在Python3.x可以使用):
>>> with open('somefile2','xt') as f:
... f.write('Hello\n')
...
6 >>> with open('somefile2','xt') as f:
... f.write('Hello\n')
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileExistsError: [Errno 17] File exists: 'somefile2'
当我们需要判断是文件,还是目录的时候,可以引用os.path模块。
{
打印输出至文件里:
>>>with open('/tmp/print.out','w') as f:
... print('Hello,world',file=f)
...
}
{
由于w方式对存在的文件会清除后写入,但有时我们不想覆盖原有的文件,这是我们就需要用下面的方法先判断文件是否存在:
os.path.exists('somefile')
当然python3里面还有一种方式,来执行文件不存在时写入,文件存在时报错。
>>>with open('somefile','xt') as f:
... f.wirte('Hello\n')
...
6
[里面的‘xt’方式是一个新方式。‘x’来判断文件是否存在,‘t’是一个默认的,不写也没问题]
}
{
os.listdir('tmp/dirlist') 返回类型为列表
下面的看不懂:
>>>files=[file for file in os.listdir('.tmp.dirlist') if os.path.isfile(os.path.join('/tmp/dirlist',file))]
>>>files
['file01','file02','file03']
>>>dirs=[dir for dir in os.listdir('.tmp.dirlist') if os.path.isdir(os.path.join('/tmp/dirlist',dir))]
>>>dirs
['dir01','dir02','dir03']
}
打印输出文件:with open('/tmp/print.out','w') as f:
print('Hello,world',file=f)
文件不存在时写入:if not os.path.sexists('somefile')进行判断
读写压缩文件:用gzip和bz2模块压缩存储,读的时候使用rt和read()
获取文件夹中的文件列表:os.listdir('/tmp/dirlist')
os.path
读取压缩文件:
import gzip
import bz2
gzip.open("file_address",'wt')
bz2.open('file_address','wt')
py2
bz2.BZ2File('file_address','w')