005-文件

2020-05-14  本文已影响0人  痞子_4ae7

文件操作介绍

文件的打开与关闭

r   :只读 指向文件头   默认方式
w   :只写 已经存在会覆盖,没有则创建新的
a   :追加 存在,指向文件为,没有则创建新的
r+  :读写 指向文件的开头
w+  :读写 已经存在会覆盖,没有创建新的
a+  :读写   文件已存在,则指向文件尾部,
进行追加内容,没有则创建新文件

文件的读写

def readMethod1():
    f = open('125.txt','r')
    result = f.read()
# list 类型
    print(type(result))
    print(result)
    f.close()
f = open('125.txt','r')
#读取一个第一行字符串出来
result = f.readline()
# str 类型
print(type(result))
print(result)
f.close()

自定义文件复制工具(讲解思路)

# 复制文件方法,旧文件[附件].后缀
def copyFile2(srcFileName):
    oldFileName = srcFileName
    # 先判断文件是否存在
    f = open(oldFileName, 'r')
    print(type(f))
    # 如果存在进行后续操作
    if f:
        # 截取出文件名字
        index= oldFileName.rfind('.')
        # 截取出文件后缀
        suffix = oldFileName[index:]
        # 新文件名为
        newFileName = oldFileName[:index]+'[复件]'+suffix
        newFile = open(newFileName,'w')
        content = f.read()
        newFile.write(content)
        newFile.close()
    f.close()
copyFile2('125.txt')

文件的定位读写

例:从文件头跳过2个字节,复制3个字节
f = open('125.txt','r')
# 从文件头开始跳过2个字节
f.seek(2,0)
# 获取当前位置
position = f.tell()
print("当前位置:%d"%position)
# 读取2个字节
content = f.read(2)
print(content)
f.close()
例:从文件尾部取2个字节(如果是从尾部进行重定位的话,需要以二进制形式打开文件)
# 从文件尾读取2个字节(尾部操作,需要使用二进制的形式打开   b)
f = open('125.txt', 'rb')
# 从尾部往前偏移2个字节
f.seek(-2, 2)
content = f.read()
print(content)

文件的重命名与删除

OS模块中的有对文件进行重命名以及删除的方法

文件的相关操作

同样需要导入os模块

代码行数统计器

# 统计一个xxx.py中所有的代码
def getNumberOfCodeLines(filename):
    count = 0
# 后边的encoding='utf-8' 解决中文读取问题
    f = open(filename, 'r', encoding='utf-8')
    if f:
        # 如果文件存在,开始统计
        content = f.readline()
        while content != '':
            if not content.startswith("#"):
                count += 1
            content = f.readline()
    return count
def showAllFilesInDir(dirName):
    listfiles = os.listdir(dirName)
    for file in listfiles:
        # 文件路径为 文件夹名字+文件名
        newpath = dirpath+"/"+ file
        # 如果是文件夹
        if os.path.isdir(newpath):
            # 递归调用自己
            showAllFilesInDir(newpath)
        elif os.path.isfile(newpath):
            print(newpath)

课后练习

图书管理系统(数据持久化版,知识拓展)

上一篇下一篇

猜你喜欢

热点阅读