文件目录练习笔记一

  1. 将如下文件中内容读取出来,然后将其码值存入另一个文件中

文件名为file.txt,文件中内容为“gloryroad”先读取出来数据,然后将字母的码值存入file1.txt文件中,要求file1.txt文件最终看到的效果为:10310811111412111411197100

 

result=""

with open("E:\\python3.6\\work\\file.txt") as fp:

    content=fp.readline()

 

with open("E:\\python3.6\\work\\file1.txt","w") as fp:

    for i in content:

        result+=str(ord(i))

fp.write(result)

文件目录练习笔记一

2、读取文件内容,统计出现次数最多的汉字,并将该汉字和次数打印出来,文件内容如下:薛之谦的了表心意歌词

 

代码:

d={}

with open("E:\\python3.6\\work\\lyric.txt") as fp:

    content=fp.read()

 

for i in content:

    d[i]=content.count(i)

 

print (d)

文件目录练习笔记一

3、Python基础题:检验给出的路径是否是一个文件,检验给出的路径是否是一个目录,检验给出的路径是否是绝对路径

import os

def Check_rount_type(s):

    if os.path.isdir(s):

        return "是目录"

    elif os.path.isabs(s):

        return "是绝对路径"

    elif os.path.isfile(s):

        return "是文件"

 

print(Check_rount_type("E:\\python3.6\\work"))

print(Check_rount_type("E:\\python3.6\\work\\b.txt"))

print(Check_rount_type("b.txt"))

文件目录练习笔记一

 

4、写一个函数,可以指定位置去替换文件内容。

如果指定位置超出文件内容长度则在末尾添加,如果指定位置在文件内容中则从中修改

如:文件a.txt中内容为”gggg”,替换内容为”gloryroad”,替换位置为1,则第二个g替换成gloryroad,则为”ggloryroadgg”,若替换位置为4,则超出gggg索引位置,直接在末尾添加,则为”gggggloryroad”

 

代码部分:

 

content=""

result=""

with open("E:\\python3.6\\work\\a.txt") as fp:

    content=fp.read()

 

print(content)

 

def Specified_position_replace(content,replace_str,position):

    global result

    with open("E:\\python3.6\\work\\a.txt","w") as fp:

        if position >len(content):

            result=content+replace_str

            fp.write(result)

        else:

            result=content[:position]+replace_str+content[position+1:]

            fp.write(result)

 

#print (Specified_position_replace(content,"gloryroad",1))

print (Specified_position_replace(content,"gloryroad",4))  

 

文件目录练习笔记一

5、统计第1第2和第3题,写的3个python脚本的代码行数,不包括空行

 

代码部分:
result=0

with open("E:\\python3.6\\work\\test\\1.py") as fp:

    content=fp.readlines()

    for i in content:

        if i !="\n":

            result+=1

 

with open("E:\\python3.6\\work\\test\\2.py") as fp:

    content=fp.readlines()

    for i in content:

        if i !="\n":

            result+=1

 

with open("E:\\python3.6\\work\\test\\3.py") as fp:

    content=fp.readlines()

    for i in content:

        if i !="\n":

            result+=1

 

print(result-3)

文件目录练习笔记一

6、写一个行数,能通过传入的参数不同自动构造目录和目录下文件,规则如下:

用户可以从控制台输入3个选项:1、2、q

控制台传入”1”,则生成1个目录A,目录A下面有 2个文件a.txt,b.txt

控制台传入”2”,则生成2个目录(目录A和目录B),目录A下面有2个文件a.txt和b.txt,目录B下面有2个文件b.txt和c.txt

控制台q,则退出

控制台输入其他数据,提示:输入有误!

 

代码部分:
import os

def fun():

    s=input("Please input your command:")

    if s=="1":

        os.mkdir("E:\\python3.6\\work\\test\\A")

        os.chdir("E:\\python3.6\\work\\test\\A")

        with open("a.txt","w") as fp:

            fp.write("hello")

        with open("b.txt","w") as fp:

            fp.write("good")

    elif s=="2":

        os.mkdir("E:\\python3.6\\work\\test\\A")

        os.mkdir("E:\\python3.6\\work\\test\\B")

        os.chdir("E:\\python3.6\\work\\test\\A")

        with open("a.txt","w") as fp:

            fp.write("hello")

        with open("b.txt","w") as fp:

            fp.write("good")

        os.chdir("E:\\python3.6\\work\\test\\B")

        with open("b.txt","w") as fp:

            fp.write("good")

        with open("c.txt","w") as fp:

            fp.write("everyone")    

    elif s=="q":

        return "退出!"

    else:

        return "输入有误!"

 

print (fun())

文件目录练习笔记一

7、创建一个目录,年月日,规则如下:

创建一个当前年份的目录

在该年份的目录下创建月份的目录

在月份的目录下创建日的目录

然后在日目录下,创建一个文件,当前小时为文件名,然后文件内容写上年月日时分秒

 

代码部分:
import os

import time

os.mkdir(str(time.localtime().tm_year))

os.chdir(str(time.localtime().tm_year))

os.mkdir(str(time.localtime().tm_mon))

os.chdir(str(time.localtime().tm_mon))

os.mkdir(str(time.localtime().tm_mday))

os.chdir(str(time.localtime().tm_mday))

os.mkdir(str(time.localtime().tm_hour))

os.chdir(str(time.localtime().tm_hour))

with open(str(time.localtime().tm_hour)+".txt","w") as fp:

fp.write(time.asctime())

文件目录练习笔记一

思考:如果创建所有月份、日期,怎么处理

 

 

8、在e盘下新建指定深度的文件名,规则如下:

传入参数2,目录名为gloryroad,文件名为a.txt

则会生成e:\gloryroad\gloryroad\a.txt

代码部分:

import os

os.makedirs("e:\\gloryroad\\gloryroad")

os.chdir("e:\\gloryroad\\gloryroad")

 

with open("a.txt","w") as fp:

    fp.write("gloryroad")

文件目录练习笔记一

9、写一个函数,读取文件指定行数的内容,如前5行,第3行到第6行等

 

 

代码部分:
import os

result=[]

with open("E:\\python3.6\\work\\c.txt") as fp:

    result=fp.readlines()

 

print (len(result))

content=""

def read_specified_line(start_num,end_num):

    global content

    if start_num >=0 and start_num<end_num and end_num<len(result):

        for i in result[start_num:end_num]:

            content+=i

            content+="\n"

    else:

        return "你输入的信息有误!"

    return content

 

print (read_specified_line(3,6))

文件目录练习笔记一

10、在e盘下新建如下目录文件结构,找出python_practice目录下所有的文件,并在每个文件中写入”i am learning gloryroad!”

代码部分:
import os

os.mkdir("e:\\python_practice")

os.chdir("e:\\python_practice")

for i in range(1,3):

    os.mkdir("practice0"+str(i))

os.chdir("practice01")

with open("a.txt","w") as fp:

    fp.write("i am learning gloryroad!")

os.chdir("e:\\python_practice\\practice02")

os.mkdir("test")

for i in range(2,4):

    os.mkdir("test0"+str(i))

os.chdir("test03")

with open("b.txt","w") as fp:

    fp.write("i am learning gloryroad!")

with open("c.txt","w") as fp:

    fp.write("i am learning gloryroad!")

 

os.chdir("e:\\python_practice\\practice02\\test")

with open("e.txt","w") as fp:

fp.write("i am learning gloryroad!")

文件目录练习笔记一

11、文件内容为如下诗词,请将每行倒序输出并重新写入该文件

春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。

雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流。

倒序重新写入的效果为:

小楼昨夜又东风,故国不堪回首月明中。春花秋月何时了?往事知多少。

问君能有几多愁?恰似一江春水向东流。雕栏玉砌应犹在,只是朱颜改。

代码部分:

content=[]

result=[]

with open("E:\\python3.6\\work\\c.txt") as fp:

    content=fp.readlines()

    for i in content:

        result.append(i[::-1].strip())

 

with open("E:\\python3.6\\work\\c.txt","w+") as fp:

    for i in result:

        fp.write(i)

        fp.write("\n")

文件目录练习笔记一

12、往文件中写入”口”字图案,要求可以通过传入的数字参数来*缩放”口”字图案

def fun(s):

    result = ''

    for i in range(s):

        if i==0 or i==s-1:

            result += ("* "*s)

            result += '\n'

        else:

            result += ("*"+(2*s-3)*" "+"*")

            result += '\n'

 

    return result

 

result=fun(10)

print (result)

 

with open("e:\\test.txt","w") as fp:

   fp.write(result)

文件目录练习笔记一

13、文件内容为一个多层元组,遍历该元组,当全为数字时输出数字之和,全为字母输出字符串,有数字有字母输出False,并将该内容写入到该文件的下一行中

如文件a.txt内容为:((1,2,3),("a","b","c"),("a",1,2))

则执行该程序后,文件a.txt内容将会如下:有两行,第一行文件原来的内容,第二行是按规则生成的一组元组数据

((1,2,3),("a","b","c"),("a",1,2))

(6,"abc",False)

 

代码部分:

with open("E:\\python3.6\\work\\c.txt") as fp:

    content=tuple(eval(fp.read()))

 

result=[]

tmp1=0

for i in content[0]:

    if isinstance(i,int):

        tmp1+=i

 

tmp2=""

for i in content[1]:

    if isinstance(i,str):

        tmp2+=str(i)

tmp3=""

for i in content[2]:

    if not (isinstance(i,int) and isinstance(i,str)):

        tmp3="None"

 

result.append(tmp1)

result.append(tmp2)

result.append(tmp3)

result=tuple(result) 

print (result)

 

with open("E:\\python3.6\\work\\c.txt","a+") as fp:

    fp.read()

fp.write(str(result))

文件目录练习笔记一

14、在e盘下用程序新建26个小写字母文件夹,然后通过控制台输入:

如果输入”a”,则删除a文件夹,输入什么字母则删除什么字母的文件夹;

如果文件夹已经被删除了在输入该字母,会提示不存在该文件夹;

如果输入其他数据,则提示:请重新输入。

要求至少循环5次。

 

代码部分:

import os

os.chdir("E:\\abctest")

for i in range(26):

    os.mkdir(chr(97+i))

 

n=0

while n<5:

    n+=1

    user=input("Please input your letter:")

    if user in os.listdir():

        os.rmdir(user)

        print ("删除成功")

    else:

        print ("请重新输入!")

文件目录练习笔记一

15、给出一个文件路径,判断是否存在于本地电脑中,如果存在则输出True,否则输出False

如”e:\\test01\\test.txt”,如果电脑中存在该目录和文件名,则输出True,否则输出False

 

代码部分:

import os

def judge_file(dir_path,file_path):

    for root,dirs,files in os.walk(dir_path,topdown=False):

        for name in files:

            if os.path.join(root,name)==file_path:

                return True

            else:

                return False

 

if __name__=="__main__":

print (judge_file("E:\\python3.6\\work\\test","e:\\test01\\test.txt"))

 

文件目录练习笔记一

16、按照阶乘思想,新建多层目录和文件,规则如下:

输入5,则会生成5级目录,根目录名称为”5的阶乘”,二级目录为5的阶乘的值为120,三级目录为4的阶乘为24....,五级目录为2的阶乘为2,然后其下文件为1.txt

输入3,则会生成3级目录:

输入1,则会生成1级目录:目录名为1的阶乘,其下文件名为1.txt

 

代码部分:
def fac(n):

    if n<=1:

        return 1

    else:

        return n*fac(n-1)

 

import os

for i in range(5,0,-1):

    os.mkdir(str(fac(i)))

    os.chdir(str(fac(i)))

 

with open("1.txt","w") as fp:

fp.write("hello")

文件目录练习笔记一

17、文件升级操作,在e盘下先手动新建如下目录和文件,然后控制台接收输入1,则文件上升1级,即a.txt就不在五级目录下了,而是跑到四级目录下面,输入4,则a.txt就在一级目录下面,输入5,则a.txt就在根目录下面

输入1执行程序的效果:

输入4执行程序的效果:

输入5执行的效果为:a.txt跑到根目录下面,与一级目录平级。

 

代码部分:
 

import os,shutil

result=[]

for root,dirs,files in os.walk("E:\\abctest",topdown=False):

    for name in files:

        file_path=os.path.join(root,name)

    for dir in dirs:

        result.append(os.path.join(root,dir))

 

result.append("E:\\abctest")

command=input("Please input your number:")

for i in range(1,6):

    if command==str(i):

        shutil.move(file_path,result[i])

文件目录练习笔记一

 

文件目录练习笔记一

18、同时读写文件,将文件内容为”i am learning gloryroad”读取出来后重新写入到该文件中,效果为按空格分割,每个单词均换行

即:文件内容为:”i am learning gloryroad”,读写文件后,就会变成如下效果:

i

am

learning

gloryroad

 

代码部分:
 

with open("E:\\python3.6\\work\\c.txt") as fp:

    content=fp.read()

    content=content.split()

 

with open("E:\\python3.6\\work\\c.txt","w") as fp:

    for i in content:

        fp.write(i)

        fp.write("\n")

文件目录练习笔记一

19、统计你的e盘下有多少个文件扩展名为txt的文件,将统计的数目和找到的txt文件(全路径如”e:\\test\\a.txt”)打印出来

代码部分

result=[]

count=0

import os

for root,dirs,files in os.walk("E:\\python3.6",topdown=False):

    for name in files:

        if name[-4:]==".txt":

            count+=1

            result.append(os.path.join(root,name))

 

print (count,result)

文件目录练习笔记一

20、找出文件中ascii码升序连续的多个字母并重新写入该文件中,要求至少连续2位,反向连续不算(如ba)

如文件内容为”testabedfcde”,则程序执行后打开该文件的内容应为:”ab cde”

 

代码部分:
result=[]

tmp=[]

with open("E:\\python3.6\\work\\c.txt") as fp:

    content=fp.read()

 

for i in range(len(content)-1):

    if ord(content[i])+1==ord(content[i+1]):

        tmp.append(content[i])

        tmp.append(content[i+1])

 

for i in tmp:

    if i not in result:

        result.append(i)

   

with open("E:\\python3.6\\work\\c.txt","w") as fp:

fp.write("".join(result))

文件目录练习笔记一

备注:不推荐