input() 接收用户的输入
#!/usr/bin/python3
str = input("请输入:");
print("你输入的内容是: ", str)
#输入结果:
请输入:11
你输入的内容是: 11
open(fileName, mode, buffering) 打开文件
- 第一个参数 filenName 文件名
- mode 文件打开的方式
r 只读
r+ 读写
rb 二进制只读
rb+ 二进制读写
w 只写,如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
w+ 读写,如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
wb 二进制打开只写入
wb+ 二进制打开读写
a 打开一个文件追加,如果文件存在,追加到原来内容后面,如果文件不存在,重新写入
a+ 打开一个文件用于读写
ab 用二进制打开文件追加
ab+ 用二进制打开文件用于追加
- buffering 参数 如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认
open() 返回文件对象,包含一些属性
- name 文件名词
- mode 打开文件的模式
- closed 文件是否关闭 关闭返回true,否则返回false
#!/usr/bin/python3
fo = open('heart', 'r')
print('文件名:',fo.name)
print('打开文件模式:', fo.mode)
print('文件是否关闭:', fo.closed)
#输出结果:
文件名: heart
打开文件模式: r
文件是否关闭: False
close() 关闭文件(养成好的习惯,打开文件记得关闭)
#!/usr/bin/python3
fo = open('heart', 'r')
print('文件名:',fo.name)
fo.close()
write() 将任何字符串写入一个文件
#!/usr/bin/python3
fo = open('heart', 'a+')
fo.write('啊哈哈哈哈')
fo.close()
read() 读取文件内容
#!/usr/bin/python3
fo = open('heart', 'r+')
res = fo.read(5)
print(res)
fo.close()
#输出结果5个字节:行深般若波
- read() 不传参,尝试尽可能多地读取更多的内容
#!/usr/bin/python3
fo = open('heart', 'r+')
res = fo.read()
print(res)
fo.close()
#输出全部内容(心经大法):
行深般若波罗蜜多时,
照见五蕴皆空,
度一切苦厄。
舍利子,
色不异空,空不异色,
色即是空,空即是色,
受想行识,亦复如是。
舍利子,
是诸法空相,
不生不灭,不垢不净,不增不减。
是故空中无色,
无受想行识,
无眼耳鼻舌身意,
无色声香味触法,
无眼界,乃至无意识界,
无无明,亦无无明尽,
乃至无老死,亦无老死尽。
无苦集灭道,
无智亦无得。
以无所得故。
菩提萨埵,
依般若波罗蜜多故,
心无挂碍。无挂碍故,
无有恐怖,远离颠倒梦想,
究竟涅盘。三世诸佛,
依般若波罗蜜多故,
得阿耨多罗三藐三菩提。
故知般若波罗蜜多,
是大神咒,是大明咒,是无上咒,是无等等咒,
能除一切苦,真实不虚。
故说般若波罗蜜多咒,
即说咒曰:揭谛揭谛,波罗揭谛,波罗僧揭谛,菩提萨婆诃。
tell() 告诉你下次读取的文件位置在哪
- 如果你的文件内容是中文的在mac中一个中文占3个字节
- 比如我读取3个字符,tell返回的文件位置就是9 (默认utf-8)
#!/usr/bin/python3
fo = open('heart', 'r+')
s = fo.read(3)
res = fo.tell()
print('当前文件位置:',res)
fo.close()
#输出结果: 当前文件位置: 9
- 修改你读取的文件内容为英文,先读取3个,当前的文件位置就是3
#!/usr/bin/python3
fo = open('heart', 'r+')
s = fo.read(3)
res = fo.tell()
print('当前文件位置:',res)
fo.close()
# 输出结果:当前文件位置: 3
seek(offset [,from]) 改变当前文件位置
- offset 表示要移动的字节数
- from 可选参数,0 表示从文件的开头读取, 1表示从当前的位置开始,2表示从文件的末尾开始
- 注意:这里要注意的是,使用from这个参数的时候必须以 rb 的形式打开文件否则会报错
要读取的文件 heart 文件内容
abcdefghijklmnopqrstuvwxyz
#!/usr/bin/python3
fo = open('heart', 'r+')
fo.seek(3)
res = fo.read()
print('读取的文件内容:', res)
fo.close()
#输出结果:读取的文件内容: defghijklmnopqrstuvwxyz
- 一定以rb的方式打开文件
- 先读取abc,再读取ghi
- 实现方式很简单,先读取3个字符,当前的文件位置是3,然后从当前的位置开始,移动3个字节再读取3个字节就拿到 ghi 了
#!/usr/bin/python3
fo = open('heart', 'rb')
fo.read(3)
curIndex = fo.tell()
print('读取完abc之后,当前的位置:', curIndex)
fo.seek(3, 1)
res = fo.read(3)
print ("读取的数据为:",res)
#输出结果:
读取完abc之后,当前的位置: 3
读取的数据为: b'ghi'
如何给文件重命名
- 需要引入os模块
- os.rename(current_file_name, new_file_name) 俩个参数当前文件名,新的文件名
#!/usr/bin/python3
import os
os.rename('heart', 'h')
删除文件
- 引入os模块
- os.remove(file_name) 输入文件名
#!/usr/bin/python3
import os
os.remove('h')
创建一个文件目录
- 引入os模块
- os.mkdir(dir_name) 输入要创建的目录名(创建目录,不是创建文件)
#!/usr/bin/python3
import os
os.mkdir('newfile')
显示当前的工作目录
- 引入os模块
- os.getcwd() 显示当前的工作目录
#!/usr/bin/python3
import os
res = os.getcwd()
print('当前的工作目录:', res)
删除当前目录
- 引入os模块
- os.rmdir(file_name) 删除当前目录
#!/usr/bin/python3
import os
os.rmdir('newfile')
基本的如何逐行读取文件内容
#!/usr/bin/python3
fo = open('heart', 'r+')
while 1:
line = fo.readline()
if not line:
break
print(line+'啊哈哈\n')
#输出结果;one
啊哈哈
two
啊哈哈
three啊哈哈