文件I/O
-
读取键盘输入:
- raw_input
- input
-
raw_input函数:
- raw_input([prompt])函数从标准输入读取一个行,默认的标准输入是键盘:
str = raw_input("请输入:") print "你输入的内容是: ", str
-
input()函数
- 比较上个函数基本类似,但input可以接收一个表达式作为输出并将运算结果返回输出:
str = input("请输入:") print "你输入的内容是: ", str
- 比较上个函数基本类似,但input可以接收一个表达式作为输出并将运算结果返回输出:
读文件与写文件
- open(filename, mode)
- filename 包含了你要访问的文件名的字符串值
- mode 解决了打开文件的模式:
- r
- rb
- r+
- rb+
- w
- wb
- wb+
- a
- ab
- a+
- ab+
__School__ = '河北大学'
__ProductName__ = 'PyCharm'
__Project__ = 'Pyproject'
__Time__ = '2019-05-09 '
class Main(object):
def __init__(self):
pass
def main(self):
f=open("./Test/foo.txt","w")
f.write("这是一个测试文件。\n是否将字符写入文件\n")
f.close()
pass
if __name__ == '__main__':
Main().main()
文件对象的方法
- read()方法
- 为了读取一个文件的内容,调用read(size),这将读取一定数目的数据,然后作为字符串或字节对象返回。size是一个可选的数字类型的参数。当size被忽略了或者为负,那么该文件的所有内容都将被读取并且返回。以下实例假定文件foo.txt已存在:
__School__ = '河北大学'
__ProductName__ = 'PyCharm'
__Project__ = 'Pyproject'
__Time__ = '2019-05-09 '
class Main(object):
def __init__(self):
pass
def main(self):
f=open('./Test/foo.txt','r')
str=f.read()
print(str)
f.close()
pass
if __name__ == '__main__':
Main().main()
readline()
- readline()会从文件中读取单独的一行。换行符位"\n"。readline()如果返回一个空字符串,说明已经读取到最后一行。
__School__ = '河北大学'
__ProductName__ = 'PyCharm'
__Project__ = 'Pyproject'
__Time__ = '2019-05-09 '
class Main(object):
def __init__(self):
pass
def main(self):
f=open('./Test/foo.txt','r')
str=f.readline()
print(str)
f.close()
pass
if __name__ == '__main__':
Main().main()
readlines()
- readlines()将返回该文件中包含的所有行。
- 如果设置可选参数sizehint,则读取指定长度的字节,并且将这些字节按行分割:
__School__ = '河北大学'
__ProductName__ = 'PyCharm'
__Project__ = 'Pyproject'
__Time__ = '2019-05-09 '
class Main(object):
def __init__(self):
pass
def main(self):
f=open('./Test/foo.txt','r')
str=f.readlines()
print(str)
f.close()
pass
if __name__ == '__main__':
Main().main()
wirte()
- wirte(string)将string写入到文件中,然后返回写入的字符数:
__School__ = '河北大学'
__ProductName__ = 'PyCharm'
__Project__ = 'Pyproject'
__Time__ = '2019-05-09 '
class Main(object):
def __init__(self):
pass
def main(self):
f=open('./Test/foo.txt','w')
num=f.write('这是一个测试文件。\n是否将字符写入文件\n')
print(num)
pass
if __name__ == '__main__':
Main().main()
tell()
- tell()返回文件对象当前所处的位置,它是从文件开头开始算起的字节数。
seek()
- 如果要改变文件当前的位置,可以使用seek(offset,from_what)函数。
- from_what的值,如果是0表示开头,如果是1表示当前位置,2不是文件的结尾,如:
- seek(x,0):从起始位置即文件首行字符开始移动x个字符
- seek(x,1):表示从当前位置往后移动x个字符
- seek(x,2):表示从文件的结尾往前移动x个字符
pickle模块
- python的pickle模块实现了基本的数据序列和反序列化。
- 通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中,永久存储。
- 通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序员保存的对象。
- 基本接口:
- pickle.dump(obj, file, [,protocol])
- 有了pickle这个对象,就能对file以读取的形式打开:
- x=pickle.load(file)
- 基本接口: