zoukankan      html  css  js  c++  java
  • python 文件操作

    #_author: "Chiy Hua"
    #date: 2020/1/24
    对文件操作流程

    打开文件,得到文件句柄并赋值给一个变量
    通过句柄对文件进行操作
    关闭文件

    能調用方法的一定是方法

    li = [1,2,3]
    li.append('2')#調用append方法

    基本操作  

    f = open('lyrics') #打开文件
    first_line = f.readline()
    print('first line:',first_line) #读一行
    print('我是分隔线'.center(50,'-'))
    data = f.read()# 读取剩下的所有内容,文件大时不要用
    print(data) #打印文件

    f.close() #关闭文件

    打开文件的模式有:

    r,只读模式(默认)。
    w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    a,追加模式。【可读; 不存在则创建;存在则只追加内容;】

    "+" 表示可以同时读写某个文件

    r+,可读写文件。【可读;可写;可追加】在文件後面添加
    w+,写读--先清空在寫再讀
    a+,同a

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    rU
    r+U

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    rb
    wb
    ab


    seek :調整光標位置
    tell:光標位置

    flush:把內存的內容存到硬盤,類似於進度條的效果

    truncate: 截斷,截取一部分內容


    ========= ===============================================================
    Character Meaning
    --------- ---------------------------------------------------------------
    'r' open for reading (default)
    'w' open for writing, truncating the file first
    'x' create a new file and open it for writing
    'a' open for writing, appending to the end of the file if it exists
    'b' binary mode
    't' text mode (default)
    '+' open a disk file for updating (reading and writing)
    'U' universal newline mode (deprecated)
    ========= ===============================================================



    eval :還原類型如:a=eval(a)


    with語句



    #****************************************
    h = open('小重山', 'r', encoding='utf-8')#打開文件
    date = h.read()#讀操作

    print(date)
    h.close()#關閉

    #*******************************************


    #****************************************
    h = open('小重山2', 'w', encoding='utf-8')#打開文件,如果沒有會幫忙創建一個文件
    date = h.write('請你輕輕留下來 ')#寫操作會把原內容清空替換為請你輕輕留下來,返回一個字符數
    h.write('書香之外')#不會覆蓋第一次操作,因為文件已經打開還沒有關閉,會緊接著存儲
    print(date)
    h.close()#關閉

    #*******************************************


    #***********************文件添加*****************
    h = open('小重山2', 'a', encoding='utf-8')#打開文件,如果沒有會幫忙創建一個文件,a代表append追加
    date = h.write(' 美麗的天籟 ')#寫操作會把原內容清空替換為請你輕輕留下來,返回一個字符數
    h.write('烏蒙山連著山外山')#不會覆蓋第一次操作,因為文件已經打開還沒有關閉,會緊接著存儲
    print(date)
    h.close()#關閉

    #*******************************************



    #***********************讀行*****************
    h = open('小重山', 'r', encoding='utf-8')#打開文件
    #date = h.readline()#讀操作
    #date = h.readlines()#讀操作
    #print(date)


    for date in h:
    print(date.strip())

    h.close()#關閉

    #*******************************************


    #***********************讀行*****************
    h = open('小重山', 'r', encoding='utf-8')#打開文件
    #date = h.readline()#讀操作
    #date = h.readlines()#讀操作
    #print(date)

    num=0
    for date in h.readlines():
    num +=1
    if num==6:
    print(date.strip(), 'kkkkk')
    else:
    print(date.strip())
    h.close()#關閉

    #*******************************************

    #***********************讀行*****************
    h = open('小重山', 'r', encoding='utf-8')#打開文件
    #date = h.readline()#讀操作
    #date = h.readlines()#讀操作
    #print(date)

    num=0
    for date in h.readlines():
    num +=1
    if num==6:
    # date = date.strip()+'ddddd'
    date = ''.join([date.strip(), 'ffffff'])
    print(date.strip())
    h.close()#關閉

    #*******************************************


    #***********************讀行*****************
    h = open('小重山', 'r', encoding='utf-8')#打開文件
    #date = h.readline()#讀操作
    #date = h.readlines()#讀操作
    #print(date)

    num=0
    for date in h: #這是for循環內部將h對象做成一個迭代器
    num += 1
    if num == 6:
    # date = date.strip()+'ddddd'
    date = ''.join([date.strip(), 'ffffff'])
    print(date.strip())
    h.close()#關閉

    #*******************************************

    #***********************讀行*****************
    h = open('小重山', 'r', encoding='utf-8')#打開文件
    #date = h.readline()#讀操作
    #date = h.readlines()#讀操作
    #print(date)

    num=0
    for date in h.readlines(): #這是for循環內部將h對象做成一個迭代器
    num += 1
    if num == 6:
    # date = date.strip()+'ddddd'
    date = ''.join([date.strip(), 'ffffff'])
    print(date.strip())
    h.close()#關閉

    #*******************************************
    h = open('小重山', 'r', encoding='utf-8')
    print(h.tell())#光標位置
    print(h.read(3))
    print(h.tell())

    print(h.seek(0))
    print(h.read(4))
    print(h.seek(0))


    import sys,time
    for i in range(30):
    sys.stdout.write("*")
    sys.stdout.flush()
    time.sleep(0.1)

    import sys,time
    for i in range(30):
    print('@', end='', flush=True)
    time.sleep(0.1)


    h.close()


    #******************************************

    h_read = open('小重山', 'r', encoding='utf-8')
    h_write = open('小重山2', 'w', encoding='utf-8')

    number = 0
    for line in h_read:
    number += 1
    if number ==5:
    line = ''.join([line.strip(), 'hello '])
    h_write.write(line)


    h.close()

    #**************************************************


    with open('小重山', 'r') as h
    h.readline(3)
    h.read(4)
    print(h)
























    无论你选择做什么,追求完美的程度决定你成就的高度。
  • 相关阅读:
    windows(win10)下的mysql解压版安装
    微信和QQ网页授权登录
    图片前端重绘前端压缩和自动调整旋转
    时间的显示
    magento中文语言包的使用
    div垂直居中(js)
    centOS IP能ping通但是域名ping不通
    python3 使用pyinstaller打包exe 指定虚拟路径模块
    Flask 多app案例
    将excel的资产数据生成二维码图片
  • 原文地址:https://www.cnblogs.com/chiyhua/p/12341225.html
Copyright © 2011-2022 走看看