zoukankan      html  css  js  c++  java
  • Python3:文件读写

    Python3:文件读写

    open

    f = open('filename','r') # 读模式
    f = open('filename','w') # 写模式
    f = open('filename','a') # 追加模式
     
    注:rb 是以二进制读取
    现在你觉得没用对吧,我也这么觉得。。。
    but
    在以后用到socket的时候,传输文件,读取和写入用的都是二进制形式
    rb和wb可以更快速的进行文件的传输

    读取内容方式

    f.read() # 一次读取整个文件,文件大不适用
    f.readline() # 一次只读取一行,占内存小,速度慢
    f.readlines() # 一次性读取,将内容分析成一个行的列表,可以由for...in...处理

    写文件方式

    f.write(content) # 不会换行哦
    f.writeline(content) # 下次会写在下一行

    close

    f.close()

    示例代码一:

    f = open('cdays-4-test.txt', 'r')                   #以读方式打开文件 
    result = list() 
    for line in f.readlines():                              #依次读取每行 
        line = line.strip()                                    #去掉每行头尾空白 
        if not len(line) or line.startswith('#'):       #判断是否是空行或注释行 
            continue                                            #是的话,跳过不处理 
        result.append(line)                                #保存 
    result.sort()                                               #排序结果  
    f.close()                     #关闭文件
    with open('new_file.txt','w') as fw:            #with方式不需要再进行close
      fw.write('%s' % '
    '.join(result))     #保存入结果文件

     示例代码二:

    #txtName:文件名,包含完整路径
    #dataList:数据
    def saveTxt(txtName,dataList):
        yyb_data = []
        if len(dataList)>0:
            for i in range(0,len(dataList)):
                yyb_data.append(dataList[i].v1 + "," + dataList[i].v2 + "," + dataList[i].v3 + "," + dataList[i].v4 + "," + dataList[i].v5 + "," 
                + dataList[i].v6 + "," + dataList[i].v7 + ","+ dataList[i].v8 + "," + dataList[i].v9 + "," + dataList[i].v10 + "," 
                + dataList[i].v11 + "," + dataList[i].v12 + "," + dataList[i].v13 + "," + dataList[i].v14+"
    ")
        dbcfg = dbconfig()
        vrg_savePath=dbcfg[4]
        file = vrg_savePath+txtName
        if os.path.exists(file):
            os.remove(file)
        #解决编码问题encoding='utf-8'
        out = open(file, "a",encoding='utf-8')
        for row in yyb_data:
            out.writelines(row)
        out.close() 
  • 相关阅读:
    BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜
    BZOJ2697:特技飞行
    Bridging signals(NlogN最长上升子序列)
    HDU 4291 A Short problem(矩阵+循环节)
    计蒜之道 初赛第一场B 阿里天池的新任务(简单)
    1008: [HNOI2008]越狱
    1022: [SHOI2008]小约翰的游戏John
    1192: [HNOI2006]鬼谷子的钱袋
    2456: mode
    BZOJ-1968
  • 原文地址:https://www.cnblogs.com/lizm166/p/8528830.html
Copyright © 2011-2022 走看看