zoukankan      html  css  js  c++  java
  • python-三元运算、文件操作

    三元运算:

     

    a = 6
    b = 8
    val = a if 12431234 < 5441234 else b
    print(val)

    文件操作:

    f = open(file='C:/Users/Administrator.USER-20171109UR/Desktop/新建文本文档.txt',mode='r',encoding='gbk')
    data = f.read()
    print(data)
    f.close()

    这里的路径写法目前自己知道的有三种:

     1、linux路径方法

           'C:/Users/Administrator.USER-20171109UR/Desktop/新建文本文档.txt'

     2、双斜杠

          'C:\Users\Administrator.USER-20171109UR\Desktop\新建文本文档.txt'

     3、显式声明字符串不用转义

           r'C:UsersAdministrator.USER-20171109URDesktop新建文本文档.txt'

    mode = 'rb'以16进制来读取

    f = open(file='C:\Users\Administrator.USER-20171109UR\Desktop\新建 Microsoft Office Word 文档.docx',mode='rb')
    data = f.read()
    print(data)
    f.close()

    1、装python工具库方法:eg:装chardet     用pip,python2 用pip2,python3用pip3,后面加 install  ,最后加工具名

         pip3 install chardet

    2、查看文件编码类型:

    import  chardet
    f = open(file='新建文本文档.txt',mode='rb')
    data = f.read()
    f.close()
    result = chardet.detect(data)
    print(result)
    print(data.decode('ascii'))#这是解码

    结果显示:

    3、如果文件内容多,运行内存不够,那就一次取一行

    f = open('新建文本文档.txt','r',encoding='ascii')
    for index,line in enumerate(f):
        print(index,line)
    f.close()
    

    4、print本身会换行

    5.数据写入:

    f=open('albert.txt','w',encoding='gbk')
    f.write('杨昌龙')
    f.close()
    f=open('albert.txt','wb')
    f.write('杨昌龙aaa'.encode('gbk'))
    f.close()

    6、追加:

    f= open('albert.txt','ab')
    f.write('
    杨昌龙'.encode('gbk'))
    f.close()
    
    

    7.文件读写:

    f = open('albert.txt','r+',encoding='gb2312')
    data = f.read()
    print(data)
    
    f.write('
    枯藤老树昏鸦')
    f.write('
    小桥流水人家')
    f.write("
    古道西风瘦马")
    f.write("
    夕阳西下")
    f.write('
    断肠人在天涯')
    print('2',f.read())
    
    f.close()
    上面执行后,只是把2之前的打印出来,文件里,写进去了

    8、文件写读:

    f = open('albert.txt','w+',encoding='gb2312')
    data = f.read()
    print(data)
    
    f.write('
    枯藤老树昏鸦')
    f.write('
    小桥流水人家')
    f.write("
    古道西风瘦马")
    f.write("
    夕阳西下")
    f.write('
    断肠人在天涯')
    print('2',f.read())
    
    f.close()
    上面执行后,仅仅显示 2 ,文件中只有增加的

    flush()强行刷新到硬盘中

    9.分行文件修改的:

    f_name = "albert.txt"
    f_new_name = "%s.new"%f_name
    old_str = "杨昌龙"
    new_str = "马致远"
    f = open(f_name,"r",encoding="utf-8")
    f_new = open(f_new_name,"w",encoding="utf-8")
    for line in f:
        if old_str in line:
            line = line.replace(old_str,new_str)
        f_new.write(line)
    f.close()
    f_new.close()

    修改用seek()光标定位置,再r+修改

    总结:

    打开文件的模式有:

        r,只读模式(默认)。

        w,只写模式。【不可读;不存在则创建;存在则删除内容;】

        a,追加模式。【可读;  不存在则创建;存在则只追加内容;】

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

        r+,可读写文件。【可读;可写;可追加】

        w+,写读

        a+,同a

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

        rU

        r+U

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

        rb

        wb

        ab

    经常用到一下:对文件内容进行修改

    f = open('information.txt','r',encoding='utf-8')
    f_new = open('information_bak.txt','w',encoding='utf-8')
    
    old_str = input('请输入修改前的内容:')
    new_str = input('请输入修改后的内容:')
    
    for line in f:
        if old_str in line:
            line = line.replace(old_str,new_str)
        f_new.write(line)
    f.close()
    f_new.close()
  • 相关阅读:
    iis6 , URL重写HTM文件名后,出现真实的HTM文件不能访问的解决
    pe如何安装ios系统
    ASP.NET Word转为PDF
    asp.net 操作word 权限
    windows server 2008 r2 修改远程登入的端口号(3389)
    A
    A Bug
    亲戚
    Kruskal
    HDOJ ——统计难题
  • 原文地址:https://www.cnblogs.com/AlbertY/p/8786386.html
Copyright © 2011-2022 走看看