最近在构思如何本地化股票数据,觉得有必要复习一下python对文件的创建、写入、和读取。
首先先了解一下对于文件的处理都有常用函数:
open(path, mode):生成文件对象。
open(r'G:\test.txt','w') # 创建文件对象
参数说明:path文件路径、mode文件的操作模式
文件的操作模式说明
1、写入模式:‘w’创建、‘wb’创建二进制、‘a’追加内容、‘ab’二进制形式追加内容(另外如在后面添加‘+’号,附加读取功能如:‘w+’)
可用write()、writelines()写入内容、close()保存文件
注意:windows系统在输入写入中文时,输入参数 encoding=‘utf-8’
# coding:utf-8
f = open(r'G:\PycharmProjects\DeltaTrader\test.txt','w', encoding='utf-8')
f.write('阿尔法电波脑')
f.close()
可用read()函数对文件内容进行读取
注意:读取的内容是从结尾开始的,用seek(0)函数指定读取位置为开头
这里我用‘w+’模式来举例
f = open(r'G:\PycharmProjects\DeltaTrader\test.txt','w+', encoding='utf-8')
f.writelines(['这里是第一行\n', '这里是第二行\n'])
f.seek(0)
a = f.read()
print(a)
>>>
这里是第一行
这里是第二行
2、读取模式:‘r’读取内容、‘rb’读取二进制内容(区别于写入模式的读取,读取模式从开头开始读取)
除了read()、还有readline()调用一次返回一行数据、readlines()返回每行数据list
f = open(r'G:\PycharmProjects\DeltaTrader\test.txt','r', encoding='utf-8')
a = f.readlines()
print(a)
>>>
['这里是第一行\n', '这里是第二行\n']
另外还有mode属性:看查文件对象的模式、closed属性:判断文件是否关闭、name属性:返回文件名
这里我还要介绍一个关键字with,他是一个表达式能为调用的文件对象别名,且自动关闭文件。
with open(r'G:\PycharmProjects\DeltaTrader\test.txt','a+', encoding='utf-8') as file:
file.writelines(['阿尔法电波脑\n', '自学python的第74天'])
file.seek(0)
a = file.readline()
print(a)
b = file.readline()
print(b)
c = file.readline()
print(c)
d = file.readline()
print(d)
# 文件是否关闭
print(file.closed)
>>>
这里是第一行
这里是第二行
阿尔法电波脑
自学python的第74天
True