Python学习_07 文件操作和函数

Python学习_07 文件操作和函数
2018-04-12
1、open函数

语法如下:
file object = open(file_name [, access_mode][, buffering])

不同模式打开文件的完全列表:
模式
描述
r
以只读方式打开文件,指针放在文件开头,这是默认默认
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
写文件要制定字符集编码,可以声明一个全局变量来制定文件字符集编码,联系写一个文件并读取:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2018/4/13 10:04
# @Auther: xiexiaolong
# @File: 0413.PY
##声明全字符集编码
ECODING = "utf-8"
#创建文件并写入内容
f = open ( "0413.txt" , "w" , encoding =ECODING)
f.write( "Hello World! \n 你好! \n I'm 谢小龙" )
f.close()
#打开刚创建的文件并读取内容
f = open ( "0413.txt" , "r" , encoding =ECODING)
print (f.read())
f.close()
结果如下:
D:\python\venv\Scripts\python.exe D:/python/venv/0413.py
Hello World!
你好!
I'm 谢小龙

Process finished with exit code 0

2、文件对象常用的操作方法
函数
描述
open
打开文件,无返回值
read
把文件的所有内容都读取出来,返回字符串
write(data)
把字符串data写入到文件中,只接受字符串参数
readline()
每次读取文件的一行,返回一个每行的字符串数据
readlines()
读取文件所有内容,返回一个list,每一行是一个元素
name
输出文件名
fileno
文件描述符
close
关闭文件
closed
返回boll值,判断文件是否已经关闭
encoding
文件编码
f.seek(offset,whence)
光标转移,offset 偏移量,正数向后偏移,负数向前偏移,whence从什么时候开始偏移
tell
返回文件光标位置
f.truncate(20)
保留20位,其他清空,只有写文件才可以用
练习脚本:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time: 2018/4/13 10:04
# @Auther: xiexiaolong
# @File: 0413.PY
##声明全字符集编码
ECODING = "utf-8"
#创建文件并写入内容
f = open ( "0413.txt" , "w" , encoding =ECODING)
f.write( "Hello World! \n 你好! \n I'm 谢小龙" )
f.close()
#打开刚创建的文件并读取内容
f = open ( "0413.txt" , "r" , encoding =ECODING)
#read:
print ( "read test: \n {0}" .format(f.read()))
f.close()
f = open ( "0413.txt" , "r" , encoding =ECODING)
#readline和tell:
print ( "readline1 test: \n {0}" .format(f.readline()))
print ( "tell test:{0}" .format(f.tell()))
print ( "readline2 test: \n {0}" .format(f.readline()))
f.close()
f = open ( "0413.txt" , "r" , encoding =ECODING)
#readlines:
print ( "readlines test: \n {0}" .format(f.readlines()))
f.close()
f = open ( "0413.txt" , "r" , encoding =ECODING)
#name:
print ( "name test: \n {0}" .format(f.name))
f.close()
#closed:
print ( "closed test: \n {0}" .format(f.closed))
f = open ( "0413.txt" , "r" , encoding =ECODING)

输出结果:
D:\python\venv\Scripts\python.exe D:/python/venv/0413.py
read test:
Hello World!
你好!
I'm 谢小龙
readline1 test:
Hello World!

tell test:14
readline2 test:
你好!

readlines test:
['Hello World!\n', '你好!\n', "I'm 谢小龙"]
name test:
0413.txt
closed test:
True

Process finished with exit code 0

3、函数
  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数就是一种封装思想,把细小的功能或者可以缩小的功能封装成一种函数
函数定义以关键字def开头,函数名,参数:回车缩进
def function (arg1, arg2, ...):
    pass
函数的调用:函数名直接传入参数
function(1,2,3)
上面arg1,arg2 是形参1,2,3是 实参
args和kwargs参数:
args可以当作可容纳多个变量的lisi
kwargs dict
def fun(*args, **kwargs)
    pass
fun(1, 2, 3, 4, 5, a=1, b=2)
例子中:
a =1
args = 2,3,4,5                    list一一对应
kwargs = {"a":1, "b":2}       dict一一对应







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值