python
I/O编程
1.输入数据
input(), raw_input()
python2.7中,使用input()函数输入字符串要输入引号;
>>> m=input('请输入金州小学生')
请输入金州小学生'Stephen Curry'
>>> print m
Stephen Curry
>>>
2.输出数据
1.输出字符串
print ‘字符串常量或字符串变量’
格式化参数形式输出字符串
print “…%s…”%(string)
例:
#print参数列表可以有多个参数
name="Stephen Curry"
name2="Klay Thompson"
print '你好,%s and %s'%(name,name2)
你好,Stephen Curry and Klay Thompson
2.格式化输出整数
i=1
j=2
print '%d+%d=%d'%(i,j,i+j)
结果:1+2=3
#%s,%d可在print同时使用
%x用于输出十六进制 %o用于输出八进制
3.格式化输出浮点数
print '100.0/3=%f'%(100.0/3)
100.0/3=33.333333
%f可以指定浮点数总长度和小数位数
%总长度.小数部分位数 总长度不足,空格浮点数前补齐;
3.文件操作
①打开文件
文件对象=open(文件名,访问模式,buffering)
文件名—路径;访问模式—见下表;buffering—可选参数,缓冲方式0-冲,1-缓冲一行,>1给定值作为缓冲区大小。
可取值 | 含义 |
---|---|
r | 以读方式打开 |
w | 以写方式打开,此时文件内容会被清空。如果文件不存在,会创建新文件 |
a | |
r+ | 以读写模式打开 |
w+ | 以读写模式打开 |
a+ | 以追加的读写模式打开 |
rb | 以二进制读模式打开 |
wb | 以二进制写模式打开 |
ab | 以二进制追加模式打开 |
rb+ | 以二进制读写模式打开 |
wb+ | 以二进制读写模式打开 |
ab+ | 以二进制读写模式打开 |
也可以使用file()打开文件
Python 2 里基本没区别。Python 3 里没 file。
Python 2 里,file 是文件对象。open 是返回新创建的文件对象的内建函数,相当于:
def open(*args, **kwargs):
return file(*args, **kwargs)
它真实的定义是:
static PyObject *
builtin_open(PyObject *self, PyObject *args, PyObject *kwds)
{
return PyObject_Call((PyObject*)&PyFile_Type, args, kwds);
}
所以 file 也是能够创建文件的。
②关闭文件
f.close(); f为访问对象;
③读取文件内容
read()方法
str=f.read([b])
- f:读取内容的文件对象
- b:可选参数,指定读取的字节数,不指定,读取全部内容。
- 读取内容返回到字符串str中
f=open("test.txt")#打开文件,返回一个文件对象
str=f.read()#读取文件内容
f.close()#关闭文件
print str
readlines()方法
读取文件所有行
list=f.readlines()
- f:读取内容的文件对象
- 读取内容返回到字符串列表list中
f=open("test.txt")#打开文件,返回一个文件对象
list=f.readlines()#读取文件内容
f.close()#关闭文件
print list
结果为
['hello python\n','read file\n']
readline()方法
逐行读取文件内容
f=open("test.txt")
while True: #循环读取
chunk=f.readline() #每次读取一行
if not chunk:
break
print chunk
f.close()
运行结果:
hello python
read file
#读入结果会带有换行符,如\n,print函数会自动输出换行,因此打印结果里会包含换行。
in可以遍历文件所有行
④向文件中写入内容
write()
f.write(写入内容)
fname=input("请输入文件名:")
f=open(fname,'w')
content=input("请输入要写入的内容:")
f.write(content)
f.close()
writelines()写入字符串序列
f.writelines(seq)
写入时序列元素不会被追加换行符
⑤文件指针
1.获取文件指针的位置
pos=文件对象.tell()
2.移动文件指针
文件对象.seek([offset,where])
- offset:移动的偏移量,单位为字节。等于正数时,向文件尾方向移动文件指针,等于负数,头方向移动。
where:指定从何处移动。等于0时,从起始位置移动;等于1从当前位置移动,等于2从结束位置移动。
⑥截断文件
truncate()从文件头开始截取文件
文件对象.truncate([size])
参数size指定截取文件大小,单位为字节,size字节后面文件内容将被丢弃。
⑦文件属性
os模块的stat()函数可以获取文件的属性
文件属性元组=os.stat(文件路径)
复制文件:copy(src,dst)
移动文件:move(src,dst)
删除文件:os.remove(src)
重命名:os.rename(原文件名,新文件名)
⑧目录编程
获取当前目录:os.getcwd()
获取目录内容:os.listdir()
创建目录:os.mkdir(path)
删除目录:os.rmdir(path)