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

    对文件进行操作:
    1、打开一个文件,得到一个文件句柄,赋值,给一个变量;
    2、通过句柄对文件进行操作;
    3.关闭文件

    现见如下文件如下:

    寒蝉凄切, 对长亭晚, 骤雨初歇。
    都门帐饮无绪, 留恋处, 兰舟催发。
    执手相看泪眼, 竟无语凝噎。
    念去去, 千里烟波, 暮霭沉沉楚天阔。
    多情自古伤离别, 更那堪, 冷落清秋节!
    今宵酒醒何处? 杨柳岸, 晓风残月。
    此去经年, 应是良辰好景虚设。
    便纵有千种风情, 更与何人说?


    读取如上的文件内容:


    f=open('雨霖铃',encoding='utf8')
    data=f.read()
    print(data)
    f.close()

    注意:open函数打开是通过操作系统打开文件的,win系统默认的编码是GBK编码,所以直接打开会乱码,所以需要转化到encoding='utf8',如果win的编码是
    gbk,就可以直接使用open打开了,


    文件打开模式:
    --------- ---------------------------------------------------------------
    'r' 读
    'w' 写,默认先清空文件
    'x' 创建一个新的文件,并且开启写的模式
    'a' 在文件的末尾添加内容
    'b' 二进制的模式
    't' 默认是txt的模式
    '+' 打开磁盘,在读和写的时候
    'U' 通用换行模式,(不建议使用)


    学习使用上述的模式:
    f=open('雨霖铃','r',encoding='utf8')
    data=f.read(5)
    data2=f.readlines()
    print(data)
    print(data2)

    例子2:

    f=open('雨霖铃','r',encoding='utf8')
    for line in f.readlines():
    print(line)


    例子3:
    在第三行后边加上:helloworld
    f=open('雨霖铃','r',encoding='utf8')
    number=0
    for line in f.readlines():
    number+=1
    if number==3:
    line=''.join([line.strip(),'helloworld'])
    print(line)

    知识点:
    tell()
    f=open('雨霖铃','r',encoding='utf8')
    number=0
    for line in f.readlines():
    number+=1
    if number==3:
    line=''.join([line.strip(),'helloworld'])
    print(line)

    print(f.tell())
    tell()就是告诉目前光标所在位置,一般英文字符按照一个算,中文按照3个算的;
    f.seek()就是把光标,至于初始的开始的位置;


    知识点2:
    在terminal上操作

    应用进度条:
    import sys,time
    for i in range(45):
    sys.stdout.write('*')
    sys.stdout.flush()
    time.sleep(0.1)


    f=open('雨霖铃','w',encoding='utf8')
    f.truncate(5)
    f.truncate()
    print(f.isatty())
    print(f.seekable())
    print(f.readable())
    f.close()


    f=open('雨霖铃2','w',encoding='utf8')
    f=open('雨霖铃2','a',encoding='utf8')

    f.write('hello')
    f.write(' 你好2 ')
    f.write('支架')
    f.close()


    r+,w+模式:
    f=open('雨霖铃2','r+',encoding='utf8')#以读写的模式打开文件
    print(f.read(5))#可读
    f.write('qiuqiu')
    print('---------------------------')
    print(f.read())


    f=open('雨霖铃2','w+',encoding='utf8')#以写读的模式打开文件
    print(f.read(5))#可读,但是什么都没有,因为w+只要执行就会先格式化了
    f.write('诺诺')
    print('---------------------------')
    print(f.read())#还是read不到,这时候要查看一下光标;
    print(f.tell())
    f.seek(0)#光标至为最初始化的状态
    print(f.read())


    w+与a+的区别在于是否在开始覆盖整个文件

    为了避免的打开文件忘了关闭使用with语句

    with open('雨霖铃2','r') as f:
    pass
    Python2.7之后,with又支持多个文件

    with open('xxx') as obj1, open('xxx2') as obj2:
    pass

  • 相关阅读:
    搭建jenkins jmeter持续集成
    Jenkins windows环境搭建
    Appium环境搭建(二)
    Qt webkitwidgets模块和webenginewidgets模块
    Qt程序无法输入中文的问题
    在Qt中使用SQLite数据库
    Ubuntu下搜狗拼音输入法打不出汉字的解决方法
    drupal7创始人root忘记密码的解决办法
    javascript块级作用域
    javascript闭包
  • 原文地址:https://www.cnblogs.com/surewing/p/7355113.html
Copyright © 2011-2022 走看看