文件输入方法主要有内置函数和os操作函数,里面涉及到的方法比较多
不过不需要去记,理解就可以了,等用到相应的函数时,可以参考文档
#读取文件按照字符的个数 3 如果编码格式没有问题就不需要指定encoding编码
f = open('./aa.txt','r',encoding='UTF-8')#打开目标文件
a=f.read(3) #读取前三个
print(a)
f.close() #关闭流
'''
读取文件按照行来读取
a = f.readline() 相当于指针一样,不过当读取玩第一行之后就结束了所以需要遍历读取
'''
f = open('./aa.txt','r',encoding='UTF-8')
a = f.readline() #读取一行
while len(a)>0: #遍历读取所有内容
print(a)
a = f.readline()
f.close() #关闭流文件
print("="*80)
g = open('./aa.txt','r',encoding='UTF-8')
a = g.readline(5)#读取第一行前5个个字符
print ("读取的字符串为: %s" % (a))#这种输出格式和 print ("读取的字符串为: ",a)是一样的效果
f.close()
print("="*80)
#文件的写入操作 \n 换行
aa = open('./aa.txt','w',encoding='UTF-8')
aa.write("hello python\n 123\n 456")
#aa.close()
'''
实现文件的复制
'''
def copyFile(file,file2):
rf = open(file,'rb')#源文件对象 r表示读,b表示二进制的形式
wf = open(file2,'wb')#目标文件对象 w表示写,b表示二进制的形式
content = rf.readline()
while len(content)>0:
wf.write(content)
content = rf.readline()
rf.close()
wf.close()
#copyFile('./zp.jpg','./zps.jpg')
'''
实现目录的复制
目录是不能直接被复制的,所以实现这个功能的时候就是递归进行查询,
如果这是一个目录则创建这个目录,然后再复制这个目录下的文件,
'''
import os
def copyDir(dir1,dir2):
dir1Infos = os.listdir(dir1) #源对象下的所有文件信息
os.mkdir(dir2) #先将目标对象创建出来
#开始进行文件复制
for i in dir1Infos:
#为遍历的文件添加目录路径 dir可以理解为是这个文件所在的路径,而后面的i就相当于是 文件名
file1Path = os.path.join(dir1,i)# 源文件路径
file2Path = os.path.join(dir2,i)# 目标文件路径
#判断获取到的源对象file1Path是一个目录还是一个文件,
# 如果是文件直接调用上面的方法进行复制就行
if os.path.isfile(file1Path):
copyFile(file1Path,file2Path)
if os.path.isdir(file1Path):
#继续执行该方法
copyDir(file1Path,file2Path)
#copyDir('./pyThon20200728','./newpyThon20200728')
# 定义一个查询一个目录大小的函数
sizeNum = 0
def countSize(dir):
global sizeNum
dir1Infos = os.listdir(dir) #源对象下的所有文件信息
for i in dir1Infos:
file1Path = os.path.join(dir, i) # 源文件路径
if os.path.isfile(file1Path):
sizeNum+=os.path.getsize(file1Path)
if os.path.isdir(file1Path):
# 继续执行该方法
countSize(file1Path)
return sizeNum
print("*****************************文件大小为:",countSize('./pyThon20200728'))
下面是使用for和while循环打印的四种九九乘法表,还是感觉使用for会更简单更好理解一些
'''
作业一
'''
for i in range(1,10):
for j in range(1, i+1):
print('{:}*{:}={:<4}'.format(i,j,i*j),end='')
print('')
print("="*80)
for i in range(9, 0,-1):
for j in range(1, i+1):
print('{:}*{:}={:<4}'.format(j, i, i * j), end='')
print('')
print("=" * 80)
for i in range(1, 10):
for k in range(1, 10 - i):
print('{:} {:} {:<6}'.format("", '', ''), end='')#输出占位符
for j in range(i,0,-1 ):
print('{:}*{:}={:<4}'.format(i, j, i * j), end='')
print('')
print("=" * 100)
for i in range(9, 0,-1):
for k in range(1, 10 - i):
print('{:} {:} {:<6}'.format("", '', ''), end='')
for j in range(i,0,-1 ):
print('{:}*{:}={:<4}'.format(j, i, i * j), end='')
print('')
print("while的第一种"+"=" * 100)
row = 1
while row<10:
cow = 1
while cow<=row:
print('{:}*{:}={:<4}'.format(cow, row, row * cow), end='')
cow+=1
print('')
row += 1
print("while的第二种"+"=" * 100)
row = 9
while row>0:
cow = 1
while cow<=row:
print('{:}*{:}={:<4}'.format(cow, row, row * cow), end='')
cow+=1
print('')
row =row - 1
print("while的第三种"+"=" * 100)
row = 1
while row<10:
index = row
cow = row
while 9-index>0:
print('{:} {:} {:<6}'.format("", '', ''), end='')
index+=1
while row>=cow>0:
print('{:}*{:}={:<4}'.format(row, cow, row * cow), end='')
cow-=1
print('')
row =row +1
print("while的第四种"+"=" * 100)
row = 9
while row>0:
index = row
cow = row
while 9-index>0:
print('{:} {:} {:<6}'.format("", '', ''), end='')
index+=1
while row>=cow>0:
print('{:}*{:}={:<4}'.format(cow,row , row * cow), end='')
cow-=1
print('')
row =row -1
'''
作业二
'''
import os
# 定义一个查询一个目录大小的函数
sizeNum = 0
def countSize(dir):
global sizeNum
dir1Infos = os.listdir(dir) #源对象下的所有文件信息
for i in dir1Infos:
file1Path = os.path.join(dir, i) # 源文件路径
if os.path.isfile(file1Path):
sizeNum+=os.path.getsize(file1Path)
if os.path.isdir(file1Path):
# 继续执行该方法
countSize(file1Path)
return sizeNum
print("*****************************文件大小为:",countSize('./pyThon20200728'))