zoukankan      html  css  js  c++  java
  • python系统学习:第三周之文件操作


    # ***********第一部分***********
    # 1.读文件,首先利用一个变量承装文件 最主要注意的是encoding的问题,看看是否是格式问题
    f = open(file='D:study少妇白洁.txt', mode='r', encoding='GBK') # file等关键字可以直接省略 mode 指模式
    # 对变量使用方法read进行读取
    data = f.read()
    # 输出
    print(data)
    # 关闭
    f.close()
    # ***********第二部分***********
    # 上回打开文件的时候会遇到编码问题,如何避免这种问题(去掉指定encoding会默认utf-8)
    f = open(file='D:study少妇白洁.txt', mode='rb') # 读取模式更改为rb, 略去指定编码,将以二进制读取文件
    data = f.read()
    print(data)
    f.close()
    # ***********第三部分***********
    # 导入第三库查看编码规则:chardet,
    # 在cmd界面找到pip的安装路径,在python安装路径下。输入:pip3 install chardet下载
    # pycharm软件打开:file-setting-project-interproject点击+下载
    import chardet

    f = open(file='D:study少妇白洁.txt', mode='rb') # 使用chardet模块必须以rb模式读取文件
    result = chardet.detect(f.read())
    print(result)
    f.close()
    # 查出编码之后,进行解码
    f = open(file='D:study少妇白洁.txt', mode='rb')
    data = f.read()
    print(data.decode('GBK'))
    # ***********第四部分***********
    # 文件的写入:新建内容
    f = open("D:study僻邪剑谱.txt", "w", encoding="utf-8")
    data = f.write("第一章 欲练此功,必先自宫")
    f.close()
    # 文件的追加:保留原有文件 a的意思是append
    f = open("D:study僻邪剑谱.txt", 'a')
    data = f.write(" 第二章 不宫也行")
    f.close()
    # 文件的循环:文件过大时,需要边缓存边查看
    fi = open("D:study僻邪剑谱.txt", "r")
    data = fi.read()
    for line in data:
    print(line)
    fi.close()
    # ***********第五部分***********
    # 文件混合读写模式
    f = open("D:study少妇白洁.txt", 'r+', encoding='utf-8')
    data = f.read()
    print("前:", data)
    f.write("访问网址:w'w'w.baidu.com")
    print(f.read()) # 文件中存在,但是读不出,因为此时光标在最后一层,需要用seek方法回到前面
    f.seek(0)
    print(f.read())
    f.close()
    # 光标 seek 指定光标位置 tell 输出光标位置
    # 文件操作方法
    # truncate 从开头到光标当前位置截断
    # flush 将缓存中的内容读到磁盘
    # readline 执行一次读一行文件内容
    # ***********第六部分***********
    # 文件修改:通过循环进行替换
    import os

    f_old_name = "D:study僻邪剑谱.txt"
    f_new_name = "%s.new" % f_old_name
    old_name = "望海潮"
    new_name = "王海潮"
    f_o = open(f_old_name, 'r', encoding='utf-8')
    f_n = open(f_new_name, 'w', encoding='utf-8')
    for line in f_o:
    if old_name in line:
    line = line.replace(old_name, new_name)
    f_n.write(line)
    f_n.close()
    f_o.close()
    os.rename(f_new_name, f_old_name)

    最重要的还是要多写多练,有的时候看着视频觉得代码一模一样,但是自己写的时候会遇到各种问题,解决问题的过程就是自己慢慢提高的过程
  • 相关阅读:
    在Ubuntu上安装Mono
    CSS 外边距(margin)重叠及防止方法
    如何通过 iframe 共享 jQuery $.data?
    给ajax表单提交数据前面加上实体名称
    发布web应用程序是出现unsafe code
    ASP.NET MVC 基于页面的权限管理
    jquery旋转图片
    artTemplate子模板include
    JS调试必备的5个debug技巧_javascript技巧
    jQuery中position()与offset()区别
  • 原文地址:https://www.cnblogs.com/niushichong/p/10028370.html
Copyright © 2011-2022 走看看