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' % '/n'.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+"/n") 
    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() 

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/16759.html

(0)
上一篇 2021年7月19日 19:36
下一篇 2021年7月19日 19:36

相关推荐

发表回复

登录后才能评论