• python基础-三分钟搞定面试官爱问的【文件操作】


    一、使用python读写文本文件

    使用Python来读或者写文本需要用到'open'这个关键字,它的作用是打开一个文件并创建一个文件对象。
    open语法结构:
    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    

    open参数说明
    在这里插入图片描述
    使用python打开文件有两种写法。
    方法一:
    f=open(‘文件路径’,‘文件操作方式’,encoding=‘utf-8’)
    对文件进行操作
    f.close()
    方法二:
    with open(‘文件路径’,‘文件操作方式’,encoding=‘utf-8’) as f :
    对文件进行操作
    open
    注解:Python不依赖于底层操作系统的文本文件概念;所有处理都由Python本身完成,因此与平台无关。

    1.使用python读文本文件

    使用python打开一个文件,首先要保证文件是存在的。在读文件时,文件的操作方式这个参数可以省略, 也可以写成‘r’,即read的首字母,这是一个默认参数。
    文件路径可以是绝对路径,也可以是相对路径,如果是绝对路径应,linux'和Mac中不能直接使用“~”标识家目录(/home)。因为Python不认识'~'符号,如果非要使用这个符号,需要使用Python中的os模块代码如下。
    
    import os
    real_path=os.path.expanduser('~/project/……') #  加自己的文件
    # 在windows系统使用路径时,可以使用/来代替 
    #或者可以使用 \ 来代替 
    #或者也可以使用原始字符串
    
    相对路径是文本文件相对于现在工作路径而言的路径并,不总是相对于当前运行的Python文件路径。
    

    encoding:
    这个参数可以在打开文件时将文件转化为你指定的格式,从而避免乱码现象出现,这个参数只有在Python3中cai有,python2 中使用会报错。如果文件是在windows中创建的,并且使用utf-8文件打开出现乱码,可以将文件的编码格式调成GBK格式。
    读取文件示例:

    file_name = r'demo.txt' #demo.txt文件和python运行程序文件在一个文件夹
    file_obj = open(file_name) # 打开 file_name 对应的文件
    print(file_obj)
    

    2.使用python写文本文件

    使用python写文件也需要打开文件

    with open('new.txt',mode='w',encoding='utf-8') as f :
    	f.write('嘻嘻哈哈,这是我写入的文件内容')
    	f.writelines(['这是我的第一句话','这是我的第二句话'])
    

    二、使用python读写二进制文件

    以二进制模式打开的文件(包括 mode 参数中的 ‘b’ )返回的内容为 bytes对象,不进行任何解码。在文本模式下(默认情况下,或者在 *mode* 参数中包含’t’` )时,文件内容返回为 str ,首先使用指定的 encoding (如果给定)或者使用平台默认的的字节编码解码。

    with open(file_name , 'rb') as file_obj:
     # 读取文本文件时,size是以字符为单位的
     # 读取二进制文件时,size是以字节为单位
     		print(file_obj.read(100))
    

    三、使用python读写CSV文件

    CSV文件可以使用Excel或者Number打开,得到可读性很强的表格。
    python自带操作csv模块,使用这个模块可以将csv文件的内容转换成python的字典,从而方便使用。
    

    1.使用python读CSV文件

    import csv
    with open('1 .csv','r',encoding='utf-8') as f :
    	reader =csv.DictReader(f)
    	for row in reader :
    		print(row)
    #1.csv文件和程文件在一个文件夹,
    

    运行结果:
    在这里插入图片描述

    2.使用python写CSV文件

    python可以把一个字典写成csv文件,或者把一包含字典的列表写成CSV文件,写入是列名要和字典的key一一对应,
    python写csv文件需要使用到csv.DictReiter()这个类。它接受两个参数:第一个参数是文件对象F;第二个参数是为fiednames,值为字典的key列表。
    写入csv文件的列名称:
    writer.writeheader()
    将包含字典的列表全部写到csv中:
    writer:writerows(包含字典的列表)
    写入单个字典:
    writer:writerow(字典)

    import csv
    
    # with open('result.csv', encoding='utf-8') as f:
    #     reader = [x for x in csv.DictReader(f)]
    #
    # for row in reader:
    #     username = row['username']
    #     content = row['content']
    #     reply_time = row['reply_time']
    #     print('用户名:{}, 回复内容:{}'.format(username, content))
    
    data = [{'name': 'kingname', 'age': 24, 'salary': 99999},
            {'name': 'meiji', 'age': 20, 'salary': 100},
            {'name': '小明', 'age': 30, 'salary': 'N/A'}]
    with open('new.csv', 'w', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=['name', 'age', 'salary'])
        writer.writeheader()
        writer.writerows(data)
        writer.writerow({'name': '超人', 'age': 999, 'salary': 0})
        
    
    

    程序运行后会创建一个csv文件,和程序文件在同一个目录下面。

    四、python中关于文件的其他操作

    import os
    from pprint import pprint
    
    # os.listdir() 获取指定目录的目录结构
    # 需要一个路径作为参数,会获取到该路径下的目录结构,默认路径为 . 当前目录
    # 该方法会返回一个列表,目录中的每一个文件(夹)的名字都是列表中的一个元素
    r = os.listdir()
    
    # os.getcwd() 获取当前所在的目录
    r = os.getcwd()
    
    # os.chdir() 切换当前所在的目录 作用相当于 cd
    # os.chdir('c:/')
    
    # r = os.getcwd()
    
    # 创建目录
    # os.mkdir("aaa") # 在当前目录下创建一个名字为 aaa 的目录
    
    # 删除目录
    # os.rmdir('abc')
    
    # open('aa.txt','w')
    # 删除文件
    # os.remove('aa.txt')
    
    # os.rename('旧名字','新名字') 可以对一个文件进行重命名,也可以用来移动一个文件
    # os.rename('aa.txt','bb.txt')
    os.rename('bb.txt','c:/users/lilichao/desktop/bb.txt')
    
    pprint(r)
    
  • 相关阅读:
    团队管理(八)
    VantUI 二级标签栏
    easyui combobox动态添加数据的问题
    easyui combobox选中的问题
    读书笔记:周鸿祎我的互联网方法论
    读书笔记:Information Architecture for the World Wide Web, 3rd Edition 北极熊 第一部分 1-3
    读书笔记:Information Architecture for the World Wide Web, 3rd Edition 北极熊 简介
    网页设计中11 款最好CSS框架
    科普:google的数字图书馆
    实用总结,如何截取翻屏网页
  • 原文地址:https://www.cnblogs.com/tianyao2020/p/12755239.html
Copyright © 2020-2023  润新知