day-15文件操作

文件操作(通用)

数据持久化

  1. 计算机存储数据

    默认情况下程序中的数据是保存在运行内存中的,当程序运行结束后,在运行内存中保存的数据会自动销毁
    如果希望在这次运行程序的时候可以使用上一次运行程序产生的数据,就必须把数据保存在硬盘(磁盘)中
    硬盘保存数据的最小单位是文件。

  2. 数据持久化 - 将数据以文件的形式保存在硬盘中

    怎么将程序中的数据保存到文件中?
    怎么在程序中获取文件中的内容?
    答案:文件操作

  3. 文件操作 - 操作文件内容

    基本流程:打开文件 -> 文件读写操作 -> 关闭文件

    1)打开

    open(file, mode=‘r’, *, encoding=None) - 以指定的方式打开指定的文件,返回一个文件对象
    参数1:file - 需要打开的文件路径(文件路径可以写绝对路径,也可以写相对路径)
    绝对路径:文件在计算机中的全路径(windows从盘开始写的路径)
    相对路径:在写文件路径的时候可以用’.‘开头代表当前目录或者’…‘开头代表当前目录的上层目录
    (当前目录指的是当前代码文件所在的文件夹)
    注意:如果要使用相对路径,被打开的文件必须放在工程中
    如果路径以’./‘开头的,’./‘可以省略
    参数2:mode - 文件打开方式,用来决定:打开文件之后能做什么(能读还是能写)、操作文件的时候数据对应的类型(是字符串还是二进制)
    给mode赋值的时候需要两组值:
    第一组:决定打开之后能做什么对应的值
    r - 只读;打开不存在文件,会报错
    w - 只写:打开的时候会先清空原文件内容;打开不存在的文件不会报错,并且会自动创建
    a - 只写:打开的时候不会清空原文件内容;打开不存在的文件不会报错,并且会自动创建
    第二组:决定操作文件的时候数据的类型
    t - 字符串
    b - 二进制(bytes)
    赋值的时候上面两组值每一组都必须选择一个(如果第二组值不选,就相当于选的是’t’):
    rt(tr)、rb(br)、r、wt、wb、w、at、ab、a
    参数3:encodeing - 文本文件编码方式(只有在以t方式打开文件的时候,才需要设置ecodeing)
    一般赋值为’utf-8’,'gbk’也是一种常见的文件编码方式
    utf-8:文本数据在存储的时候,ASCII表中的符号用一个字节来存储,一个中文用三个字节存储。可以对任何符号编码
    gbk:文本数据在存储的时候,ASCII表中的符号用一个字节来存储,一个中文用两个字节存储。除了ASCII表和中文以外不能对其他符号进行编码
    使用编码值的原则:存储数据的时候使用编码值要和获取数据的时候对应的编码值一致。

    1. 路径写法

      open(r'F:\千峰培训\项目\01语言基础\day15-文件操作\files\abc.txt')
      open(r'./files/abc.txt')
      open(r'./test.txt')
      open('../day15-文件操作/files/abc.txt')
      open('files/abc.txt')
      
    2. 打开方式

      ====r是只读====
      f = open('files/abc.txt', 'r')
      f.read()
      f.write('123')
      ====w是只写,并且会清空原文件====
      f = open('files/abc.txt', 'w')
      f.write('123')
      f.read()
      ====w是只写,并且不会清空原文件====
      f = open('files/abc.txt', 'a')
      f.write('123')
      f.read()
      ====t对应的类型是字符串====
      f = open('files/abc.txt', 'rt')
      result = f.read()
      print(type(result))  # <class 'str'>
      f = open('files/abc.txt', 'rb')
      result = f.read()
      print(type(result))  # <class 'bytes'>
      f = open('files/abc.txt', 'wt')
      f.write(str(100))
      f = open('files/abc.txt', 'wb')
      f.write(str(100))
      
    3. 设置encoding

      with open('files/student.txt', 'w', encoding='utf8') as file:
          file.write('abc你啊')
      
      with open('files/student.txt', 'r', encoding='gbk') as file:
          a = file.read()
      print(a)
      

    2)文件读写操作

    1.文件读写操作:
    文件对象.read() - 获取整个文件内容(从读写位置开始,读到文件结束。读写位置默认在文件开头,随着读操作的进行读写位置会不断改变)
    文件对象.readline() - 获取一行内容(只能文本文件有效)
    文件对象.readlines() - 获取整个文件,返回一个列表,列表中的元素是每一行内容(只能文本文件有效)
    2.文件写操作
    文件对象.write(数据)
    文件对象.writelines(列表)

    # ====文件读操作====
    """
    with open('test.txt', 'r', encoding='utf8') as f:
        a = f.read()
        print(a)
        f.seek(0)  # 将读写位置移动到文件开头
        b = f.readline()
        print(b)
        f.seek(0)
        c = f.readlines(1)
        print(c)
    """
    # ====文件写操作====
    """
    with open('a.txt', 'a', encoding='utf8') as f:
        f.write('abc')
        f.writelines(['123\n', '憨憨'])
    """
    

    3)关闭文件

    文件对象.close()

文件操作实战

  1. 数据持久化步骤

    1)确定需要持久化的数据
    2)创建保存需要持久化数据的文件
    3)确定文件初始内容(就是需要持久化的数据的初始值)
    4)在程序中需要这个数据的时候从文件中获取这个数据
    5)在程序中修改了数据后,必须将最新的数据写入到文件里面

    # 案例:写程序打印程序运行次数
    # 1)确定需要持久化的数据 - 次数
    """with open('files/runCount.txt', 'r', encoding='utf8') as f:
        count = int(f.read())
        count += 1
        print(count)
        f.close()
    with open('files/runCount.txt', 'w', encoding='utf8') as f1:
        f1.write(str(count))
        f1.close()"""
    
    while True:
        name = input('请输入姓名:')
        if name.upper() == 'Q':
            break
        with open('files/name.txt', 'a+', encoding='utf8') as f:
            f.write(f'姓名:{name}\n')
            f.seek(0)
            a = f.read()
            print(a)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 通达信是一款常用的股票分析软件,其保存的日线数据文件格式为day文件。而csv文件是一种常见的数据文件格式,可以在不同的软件和工具之间交换和共享数据。 将通达信的day文件转换为csv文件可以通过以下步骤完成: 1. 打开通达信软件,并选择要转换的股票或指数的日线数据。 2. 在通达信软件中找到“导出”或“另存为”等选项,选择将数据导出为文本文件。 3. 在弹出的保存对话框中,选择保存为txt格式,以便后续处理。 4. 使用文本编辑器(如记事本、Sublime Text等)打开保存的txt文件。 5. 检查txt文件的格式,通达信的day文件通常包含日期、开盘价、最高价、最低价、收盘价等信息,每个数据之间用制表符或空格分隔。 6. 检查并调整txt文件的编码,确保其与要求的csv文件编码一致(如UTF-8)。 7. 在文本编辑器中选择“另存为”选项,并将文件格式选择为csv格式。 8. 保存文件,并选择适当的文件名和存储位置。 转换完成后,您就可以使用支持csv文件格式的软件(如Microsoft Excel、Python pandas库等)进行进一步的数据分析、可视化或处理。 需要注意的是,转换过程中可能需要根据具体的数据格式和软件要求进行一些调整和处理,例如处理日期格式、缺失值等。此外,如需处理多只股票或指数的数据,需要对每一个day文件进行转换。 ### 回答2: 通达信day文件是一种历史股票数据文件格式,包含了股票的高、低、开、收、成交量等信息。而CSV文件是一种以逗号分隔值的文本文件,用于储存简单的表格数据。如果想将通达信day文件转换为CSV文件,可以按照以下步骤操作。 首先,需要打开通达信软件,并选择要导出的历史数据。通达信软件提供了数据导出的功能,可以通过菜单或快捷键找到导出选项。 接下来,选择导出文件的路径和名称。通常可以选择将导出的CSV文件保存在本地计算机的某个文件夹中。 然后,在导出选项中选择CSV文件作为导出的文件格式。通常可以在导出选项中看到支持的文件格式,选择CSV文件即可。 最后,点击导出按钮,等待一段时间,通达信软件将会自动将day文件转换为CSV文件,并保存在之前选择的路径中。 转换完成后,可以在保存的路径中找到生成的CSV文件。可以使用文本编辑器或者电子表格软件打开CSV文件,查看其中的股票历史数据,包括日期、开盘价、收盘价、最高价、最低价等。 需要注意的是,不同版本的通达信软件可能略有差异,具体的操作步骤可能会有所不同。如果对于软件操作不熟悉,可以参考软件的帮助文档或者寻求专业人士的帮助。 ### 回答3: 通达信day文件是一种常见的股票数据文件格式,而CSV文件是一种常用的数据存储格式。将通达信day文件转换为CSV文件可以方便地对股票数据进行处理和分析。 通达信day文件通常以“day”为后缀名,包含股票的每日交易数据,如开盘价、收盘价、最高价、最低价、成交量等。而CSV文件以逗号分隔不同的数值,并且可以直接在电子表格软件中打开和编辑。 要进行转换,首先需要打开通达信软件,选择相应的股票数据文件。然后在数据菜单中选择“导出数据”选项,并选择CSV格式。接下来,在弹出的导出设置窗口中,可以选择需要导出的数据类型、导出起止日期等,并点击“确认”按钮。 此时,通达信软件会自动生成相应的CSV文件,保存在指定的路径下。打开生成的CSV文件,可以使用电子表格软件(如Excel)打开和编辑,方便进行数据处理和分析。在CSV文件中,每一行代表一条股票交易数据,各个数据字段以逗号分隔。 总结而言,将通达信day文件转换为CSV文件,可以通过通达信软件进行操作,选择导出数据的格式为CSV,然后软件会自动生成对应的CSV文件,方便进行后续的数据处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值