0513---文件操作练习题

#习题1:有四个数字:1,2,3,4 ,能组成多少个互不相同且无重复数字的三位数
'''
result =[]

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i!=j and j!=k and k!=i:
                result.append(str(i)+str(j)+str(k))

print(result)
print(len(result))
'''

#习题2:判断 一个文件中有几行含英文单词
'''
import string
count =0
with open(r"E: esult.txt","r",encoding="utf-8") as fp:

    contents =fp.readlines()

    for line in contents:
        for character in line:
            if character in string.ascii_letters:
                count +=1
                break
print(count)
'''

#习题3:以r+方式,把一句话追加到文件末尾,然后读出所有文件

with open(r"E:
esult.txt","r+",encoding="utf-8") as fp:
    fp.seek(0,2)
    fp.write("光荣之路测试")
    fp.seek(0,0)
print(fp.read())


#习题4:把一个文件内容中的boy替换成xxx

'''
with open(r"E:
esult.txt","r+",encoding="utf-8") as fp:
    content =fp.read()
    content =content.replace("xxx","boy")
    fp.seek(0,0)
    fp.write(content)
'''
#方法2:
'''
with open(r"e:
esult.txt","r+") as fp:
    content =fp.readlines()
    fp.seek(0,0)
    for line in content:
        fp.write(line.replace("xxx","boy"))
'''
#习题5:一个文件拆分成5个文件
#算法:1 读取整个文件的内容 ,计算文件的长度
#2 把整个长度除以5 3 然后写入新的文件中
'''
#记录文件行数
file_line =0
#记录文件数
file_no =1
backup_content =""
fp1 =open(r"E:
esult.txt","r",encoding="utf-8")
for line in fp1:
    file_line +=1
    backup_content +=line
    if file_line %2 ==0:
        with open("e:\result"+str(file_no)+".txt","w+",encoding="utf-8") as fp2:
            fp2.write(backup_content)
        file_no +=1
        backup_content
'''

#方法二:
def split_file(file_path,file_name,num):
    import os.path
    file_content =""#文件内容
    file_name_no =1 #第几个文件
    with open(file_path+file_name,"r",encoding="utf-8") as fp:
        file_length =len(fp.readlines())
        fp.seek(0,0)
        file_line =0#记录当前读取的行数
        for line in fp:
            file_content +=line #
            file_line +=1
            if file_line==int(file_length/num)*file_name_no:#每一个文件的行数等于整个原文件的长度除以拆分的文件数在乘以是

第几个文件
                with open(file_path+os.path.splitext(file_name)[0]+str(file_name_no)+".txt","w",encoding="utf-8") as fp1:
                    file_name_no +=1
                    fp1.write(file_content)
                    file_content =""


split_file("e:\","result.txt",5)
#习题5:过滤掉一个文件中空行

with open("e:\result.txt","r",encoding="utr-8") as fp:
    for line in fp:
        if line.strip()=="":
            continue
        with open("e:\test123.txt","a",encoding="utf-8") as fp1:
            fp1.write(line)
#习题6:处理数据文件
'''
算法分析:
遍历每一行,每行取头8个字母
新建文件,文件名为首8个字母,然后把第15字符后的所有字
符拷贝到文件中
关闭文件
'''
with open("d:\pytest\3.txt","r",encoding="utf-8") as fp:
    for line in fp:
        with open("d:\pytest\"+str(line[:14])+".txt","w",encoding="utf-8") as fp1:
            fp1.write(line[14:])
#习题7:删除一个目录下文件
import os
import os.path
os.chdir(r"D:pytest	estmanman")
for i in os.listdir(r"D:pytest	estmanman"):
    print(i)
    if os.path.isfile("D:\pytest\testmanman\"+i):
        os.remove(i)
原文地址:https://www.cnblogs.com/wenm1128/p/10858051.html