定义模块
创建tools.py文件,实现了say_hello()函数,say_goodbye()函数
通过上述方法,成果定义tools模块
# tools.py
def say_hello():
print('hello')
def say_goodbye():
print('goodbye')
导入模块
import math
导入模块中所有内容
from math import pi
导入模块指定内容
from math import *
重命名模块
from math import pow as mathpow
input接收外部的输入,但输入的为字符串,需转型为数字类型
num = input(':')
num = int(num)
result = 1
for i in range(1,num):
result = result * i
print(result)
eval函数可以把字符串转换为等值的结果
while True:
a = input('a:')
if a == 'break':
break
c = eval(a)
print(c)
文件的打开与写入关闭
打开文件
通过open函数,得到一个file对象,可以对对象进行读写等操作
open重要的三个参数:
文件路径:指定需要打开的文件的路径
打开模式:针对不同文件以及不同操作,会有不同的打开模式
编码:设定打开文件的默认编码
注意:为了安全操作,文件需在使用完毕后,使用close函数进行关闭
f = open('test.txt','r',encoding='utf-8')
print(f.read())
print(type(f))
f.close()
read可以读取文件中的若干文字,参数size,可以指定字符数量
f = open('test.txt','r',encoding='utf-8')
# print(f.read())
s = f.read(5)
p = f.read(8)
print(s)
f.close()
readline可以读取若干字符,但不能换行读取
readlines可以读取多行字符,返回的为列表
f = open('test.txt','r')
s = f.readline(20)
print(s)
f.close()
f = open('test.txt','r')
q = f.readlines()
print(q)
打开二进制文件
参数:
b:二进制模式,打开二进制文件
wb:以二进制格式只写模式打开一个文件,会清除原有的内容
ab:以二进制格式打开一个文件并追加内容,
rb:以二进制只读模式打开一个文件
f = open('test.png','rb')
print(f.read())
f.close()
将字符串写入文件
w:打开文件进行写入,会清除原有的内容
wb:以二进制格式只写模式打开文件,会清除原有的内容
w+:打开文件进行读写,如果内容存在,会清除原有内容
如:有test.txt文件,包含以下内容:
Hello World
Hello Python
Hello Imooc
请从test.txt文件读取以上内容,并将每一行字符串反转,写入test1.txt文件。
f = open('test.txt','r')
lines = f.readlines()
f1 = open('test1.txt','w')
for line in lines:
line = line[::-1].strip() + '\n'
f1.write(line)
f1.close()
f.close()
追加内容
a:打开文件并追加内容,添加到文件尾部
ab:以二进制格式打开文件并追加内容,添加到文件尾部
a+:打开文件并使用追加进行读写
f = open('test.txt','a')
f.write('hello python')
f.close
a方式打开的文件,游标默认在文件尾部,可以通过seek()方法进行改变
0:文件首部
1:当前位置
2:文件尾部
f = open('test.txt', 'a+')
content = f.readlines()
f.seek(0)
content = f.readlines()
将文件内容进行重写追加到文件尾部
f = open('test.txt', 'a+')
f.seek(0)
content = f.readlines()
f.seek(2)
for line in content:
f.write(line)
f.close()
with方法关闭文件
with关键字对资源进行访问的整合,确保在使用过程中,是否有异常操作,都会执行清理操作
如文件使用后自动关闭等
with open('test.txt','a+') as f:
f.seek(0)
contents = f.readlines()
f.seek(2)
for content in contents:
f.write(content)