博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python:open/文件操作
阅读量:5342 次
发布时间:2019-06-15

本文共 1704 字,大约阅读时间需要 5 分钟。

open/文件操作

f=open('/tmp/hello','w')
#open(路径+文件名,读写模式) 

 

也就是说当我们使用open()函数打开文件时,程序首先会查询open()函数的文件名称,然后才是文件的模式。文件模式是相当重要的一个参数。默认情况下,该函数的默认模式参数为r,用来只读打开文件,如果读取特殊文件(例如视频或者图片文件),那么必须使用 b 模式。

#读写模式:  r只读,   r+读写,   w新建(会覆盖原有文件),   a追加,  b二进制文件.常用模式

在模式后使用 "+" ,表示同时支持输入、输出操作,如 r+、w+、b+

在模式后附加 "b" ,表示以二进制方式打开

如:'rb','wb','r+b'等等

读写模式的类型有:

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)

w     以写方式打开,
a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+     以读写模式打开

U        支持换行符(例如:\n、\r 或 \n\r 等)

w+     以读写模式打开 (参见 w )
a+     以读写模式打开 (参见 a )
rb     以二进制读模式打开
wb     以二进制写模式打开 (参见 w )
ab     以二进制追加模式打开 (参见 a )
rb+    以二进制读写模式打开 (参见 r+ )
wb+    以二进制读写模式打开 (参见 w+ )
ab+    以二进制读写模式打开 (参见 a+ )

注意:

1、使用'W',文件若存在,首先会清空原文件内容,然后(重新)创建

2、使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。

f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.  f.read()读到文件尾时返回""(空字串)
file.readline() 返回一行
file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
for line in f: print line #通过迭代器访问
f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.
f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
f.seek(偏移量,[起始位置])
用来移动文件指针
偏移量:单位:比特,可正可负
起始位置:0-文件头,默认值;1-当前位置;2-文件尾
f.close() 关闭文件,跟编辑器的 文件->保存.. 一个意思。或者不想关闭文件,只想保存数据的话,可以使用 f.flush() 将内存缓冲区的数据刷写到磁盘当中。

Code:

 

#!/usr/bin/env python
# Filename: using_file.py
poem='''\Programming is funWhen the work is doneif you wanna make your work also fun: use Python!'''
f=file('poem.txt','w') # open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file
f=file('poem.txt')
# if no mode is specified, 'r'ead mode is assumed by default
while True:
line=f.readline()
if len(line)==0: # Zero length indicates EOF
break
print line,
# Notice comma to avoid automatic newline added by Python
f.close()
# close the file

转载于:https://www.cnblogs.com/wjoyxt/p/4527171.html

你可能感兴趣的文章
6-2 S树 uva712
查看>>
【练习】多表查询
查看>>
Codevs 1036 商务旅行
查看>>
献给即将想从事前端工作的你们
查看>>
连接池技术 Connection Pooling
查看>>
Windows Phone 7 页面间传值
查看>>
同一链接点击后打开两个不同的地址
查看>>
仿TB搜索框
查看>>
深度遍历与广度遍历的理解
查看>>
jQuery $.proxy() 方法
查看>>
ASP.NET项目申报系统-4.28~5.2总结
查看>>
指纹机SDK demo测试 2/23
查看>>
AsyncTask 不能与Thread.sleep()同时使用解决方案
查看>>
filter 过滤emoji
查看>>
javascript中sort()排序方法总结
查看>>
实现聊天界面的代码
查看>>
自己生成一个NDK的浅析
查看>>
Excel数据导入到数据库
查看>>
hadoop集群只有namenode没有启动
查看>>
人生有所获
查看>>