python----------------python文件操作

本文详细介绍了Python中文件的基本操作,包括读取、写入、复制及目录复制等,同时展示了如何使用for和while循环生成九九乘法表,提供了多种实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件输入方法主要有内置函数和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'))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值