python学习笔记-文件<9>

最简单的输出:print
读取键盘的输入:raw_input、input()

1.打开文件(open函数)


FileObj=open(file_name,access_mode,buffering)
file_name:文件名(当前目录下的文件名,可写绝对路径的文件名)
access_mode:文件的打开模式
buffering:缓冲模式,0代表不缓冲,1代表缓冲一行可省略为系统默认缓冲方式默认值-1

2.打开文件的文件名:


相对路径和绝对路径:
打开当前目录下的文件可直接写文件名
打开其他路径下的文件则使用绝对路径

f = open(r'C:\Users\user\Desktop\testTxt.txt') #打开绝对路径下的文件,用r可以避免转义
f

f1 = open('C:\Users\user\Desktop\testTxt.txt') #打开绝对路径下的文件,用\可以避免转义
f1

import os
os.getcwd() #获取到当前目录
'C:\Python27'
f2 = open('LICENSE.txt') #打开当前目录下的文件
f2

3.文件打开模式:


r 以只读的模式打开文件(默认) 文件不存在会报错
w 以写入的方式打开文件,会覆盖已存在的文件 存在覆盖 不存在创建
a 以写入的方式打开文件,如果文件存在会追加写入,不清空之前的文件
b 以二进制模式打开文件,例:wb、rb模式 图片 视频等文件
+ 可读写模式(可添加到其他模式中使用)

4.文件对象的属性和方法:


f.close() 关闭文件
f.read() 读取文件的所有字符,也可以设置读取字符的个数
f.readlline() 从文件中读取并返回一行,也可以设置读取字符的个数,返回列表,一行一个值
f.write(str) 将字符串str写入文件
f.writelines(seq) 向文件写入字符串序列seq,seq是返回字符串的可迭代对象
f.seek(offset,from) 在文件中移动文件指针,从from(0代表起始位值(默认),1代表当前位置,2代表文件末尾)偏移offset个字节
f.tell() 返回当前在文件中的位置

5.文件缓冲:

  1. flush() 将缓冲信息存在文件中
  2. close() 将缓冲信息存在文件中,并关闭文件
  3. 使用 with 不用调用 close() 会自动关闭文件

    with open(filename,mode) as f:
    prinr f.read()

6.文件练习:


f1= open(r'C:\pythonSource\zsq.py')
f1

f1.name
'C:\pythonSource\zsq.py'
f1.closed
False
f1.tell()
0L
f1.read(12)
'# -- coding'
f1.tell()
12L
f1.read()
":utf-8 -
-\n\ndef fun1(f):\n print 'xxx'\n def fun2(arg1,arg2):\n return f(arg1,arg2) + 1 #\xe5\x87\xbd\xe6\x95\xb0\xe7\x9a\x84\xe8\xb0\x83\xe7\x94\xa8\n return fun2\n\n\ndef ff(a,b):\n return ab\n#ff = fun1(ff)\n\n@fun1 # @fun1 \xe7\x9b\xb8\xe5\xbd\x93\xe4\xba\x8e ff=fun1(ff)\ndef ff1(a,b):\n return ab\n"
f1.read()
''
f1.tell()
283L
f1.seek(0)
f1.tell()
0L
ff=f1.read()
ff
"# -- coding:utf-8 --\n\ndef fun1(f):\n print 'xxx'\n def fun2(arg1,arg2):\n return f(arg1,arg2) + 1 #\xe5\x87\xbd\xe6\x95\xb0\xe7\x9a\x84\xe8\xb0\x83\xe7\x94\xa8\n return fun2\n\n\ndef ff(a,b):\n return ab\n#ff = fun1(ff)\n\n@fun1 # @fun1 \xe7\x9b\xb8\xe5\xbd\x93\xe4\xba\x8e ff=fun1(ff)\ndef ff1(a,b):\n return ab\n"
print ff

-- coding:utf-8 --

def fun1(f):
print 'xxx'
def fun2(arg1,arg2):
return f(
arg1,**arg2) + 1 #函数的调用
return fun2

def ff(a,b):
return a*b

ff = fun1(ff)

@fun1 # @fun1 相当于 ff=fun1(ff)
def ff1(a,b):
return a*b

f1.close()
f1.closed
True
f2 = open('C:\pythonSource\xxx.py','w')
f2.write('aaaaa\nbbbbb')
f2.close()
f2

f2.read()
Traceback (most recent call last):
File "", line 1, in
f2.read()
ValueError: I/O operation on closed file
f2 = open('C:\pythonSource\zsq.py')
f2.readline()
'# -- coding:utf-8 --\n'
f2.readline()
'\n'
f2.readlines()
['def fun1(f):\n', " print 'xxx'\n", ' def fun2(arg1,arg2):\n', ' return f(arg1,arg2) + 1 #\xe5\x87\xbd\xe6\x95\xb0\xe7\x9a\x84\xe8\xb0\x83\xe7\x94\xa8\n', ' return fun2\n', '\n', '\n', 'def ff(a,b):\n', ' return ab\n', '#ff = fun1(ff)\n', '\n', '@fun1 # @fun1 \xe7\x9b\xb8\xe5\xbd\x93\xe4\xba\x8e ff=fun1(ff)\n', 'def ff1(a,b):\n', ' return ab\n']
f2.seek(0)
x = f2.readlines()
f3 = open('C:\pythonSource\xx.txt','w')
f3.writelines(x)
f3.flush()
f3.close()
f4 = open('C:\pythonSource\xx.txt','a')
f4.write('ccccc\nddddd')
f4.flush()

with open('C:\pythonSource\xx.txt') as f5:
s = f5.readlines()
f5.closed
True

你可能感兴趣的:(python学习笔记-文件<9>)