文件
- 路径
- 绝对路径:
- C:\Users\Master\Desktop\test 磁盘路径
- URL
- 相对路径
- 相对于自身正在编辑的文件
- 绝对路径:
- 文件名 + 扩展名
- I/O 操作 Input Output
File
- open() : open() 方法用于打开一个文件,并返回文件对象
-
filename 文件路径(相对或者绝对路径)。\
-
打开方式:
- r 默认方式 以只读方式打开文件。文件的指针将会放在文件的开头。
- rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
- r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
- rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
- w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
- w+ : 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
- a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
- ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
-
encoding 文件编码
### 读
-
- read() : 读取文件内容
- 默认从文件指针的位置,往后一直读到结束。
- 参数: 读取的字节数
- readline: 读取文件指针的当前行
- readlines: 读取所有行
写
-
write()
-
writelines
- 字符序列
-
close() 关闭文件对象
文件指针
- tell() 返回当前文件指针的位置
- seek() : 设置文件指针的位置
- offset : 偏移量
- where : 相对于谁偏移
- 0 代表从文件开头开始算起
- 1 代表从当前位置开始算起,
- 2 代表从文件末尾算起。
- f.seek(0,0) 把指针移到文件开头
- 在非b模式打开的时候,seek方法,的第二个参数,不允许赋值为,1或者2.
练习
-
封装一个函数,传入一个文件名filename,如果文件名不存在,则创建一个filename的文件.如果文件名存在, 在同一个文件夹中复制一个名为filename-复件(扩展名保持一致)的文件.
-
名为poetry.txt的文件,其内容如下,请删除第三行;
昔人已乘黄鹤去,此地空余黄鹤楼。
黄鹤一去不复返,白云千载空悠悠。
晴川历历汉阳树,芳草萋萋鹦鹉洲。
日暮乡关何处是?烟波江上使人愁。 -
有名为username.txt的文件,其内容格式如下,写一个程序,判断该文件中是否存在"alex", 如果没有,则将字符串"alex"添加到该文件末尾,否则提示用户该用户已存在;
pizza
alex
egon
- 有名为user_info.txt的文件,其内容格式如下,写一个程序,删除id为100003的行;
pizza,100001
alex, 100002
egon, 100003
- 有名为user_info.txt的文件,其内容格式如下,写一个程序,将id为100002的用户名修改为alex li;
pizza,100001
alex, 100002
egon, 100003