day08-文本及csv文件操作

day08 文本文件的操作及csv文件的操作

一、文本文件的操作

1.1open()和 close()方法

将数据从瞬时状态转换为持久状态

f = open(参数1,参数2,参数3…) - 打开文件,打开的是一个文件对象

  • 参数1 :路径和文件名,注意文件后缀名一定不要忘记写
  • 参数2: 文件打开的方式(读和写)(且有t文本、b字节两种格式)
  • 参数3 :文件打开的编码形式(utf-8)
  1. 参数1 :

    open(r’./test/文件1.txt’)

    a. .表示当前文件夹(可以省略不写); …表示返回上一级
    理清楚文件的层级关系,. :当前位置:文件所在的文件夹,… :上一级指当前文件夹再往上翻一下

    b. (mac)文件夹与文件夹之间需要使用\(反斜杠)隔开

    c. 相对路径:以当前所找文件为参照物为基础,另一个文件相对于参照物的所在位置,应该使用/ (斜杠)
    (经常使用相对路径,打包给别人,可以直接打开)
    绝对路径:一磁盘为参照物,使用\(反斜杠)

    d. python中,写路径时,如果最后的对象文件在该文件夹不存在,python会自动创建一个

  2. 参数2 :r, a, w, +等

    a. 文件编辑方式
    r :只读,如果文件不存在报错。
    w:只写入空白文件,文件不存在,先自动创建;如果文件存在,先清空(如果某个文件夹不存在,不会创建文件夹)
    a:只追加写,文件不存在报错,文件存在,追加
    +:(尽量不用)可读可写,格式:r+, a+, w+,Python操作文件,要么读要么写,不能同时读写

    文件展示形式(数字的映射的方式,对应成图片,还是啥)
    t :文本 :rt,at,wt,(t可以省略不写) :以文本形式操作文件

    b :字节 ——> 除文本外的其他形式,多媒体比特,如图片
    ——> rb,wb,ab :表示以字节形式操作文件

  3. 参数3 :encoding = ‘utf-8’ (常用)

文件写操作实例

注意,文件这块很重要的思路是:把文件内数据取出来,赋值给str1,然后对str1进行处理,处理成想要的数据

f = open(‘./test/咏鹅.txt’,‘w’,encoding = ‘utf-8’)
str_1 = ‘嗯嗯嗯好好好’
f.write(str_1)

f.close() # 注意一定要最后一定要关闭文件

文件读操作实例

f = open('./test/文件1.txt','r',encoding = 'utf-8')
# 注意:如果使用多个read(),有指针存在,会接着上面读取的停留位置,接着读取
print(f.read())    #一次性读所有内容,返回的是字符串

print(f.readline())   # 一次读一行,返回的是字符串

print(f.readlines())   #一次读全部内容,但每一行内容作为列表中的一个元素

f.close()
---------------------------------------------------------------------------

FileNotFoundError                         Traceback (most recent call last)

Input In [1], in <cell line: 1>()
----> 1 f = open('./test/文件1.txt','r',encoding = 'utf-8')
      2 # 注意:如果使用多个read(),有指针存在,会接着上面读取的停留位置,接着读取
      3 print(f.read())    #一次性读所有内容,返回的是字符串


FileNotFoundError: [Errno 2] No such file or directory: './test/文件1.txt'

1.2 seek(参数1 ,参数2 ):能够将指针移动指定的偏移量

seek指定开始输出的位置,即指针的位置

  • 参数1 :移动的偏移量。(默认为0)

  • 参数2 :0 - 将指针移动到文件开头、1(默认是1) - 将指针移动到当前位置 、2 - 指针移动到文件尾部

f = open('界面.txt','r',encoding = 'utf-8')
#将指针再移动到文件开头
f.seek(0,0)

# 1.将一个英文符号对应一个偏移量,一个汉字对应3个偏移量
f.seek(6,0)

# 2.如果文件是“欢迎进入系统”,会输出“进入系统”,偏移6单位,从6后的单位开始输出
# 3.指针先判断在哪个位置(0,1,2),然后偏移,从此位置开始输出。
# 4.指针值,不同于索引,从1开始
# 5.换行: linux :\n,windows :\r\n, mac:\r

1.3 tell() : 查看当前指针的位置

注意:tell会将汉字视为偏移量为1,所以最后要‘ + 文字数量 * 2’

二、csv文件的操作

  1. 本质:是文本文件,只是以表格的形式来展示数据

  2. 使用内置的csv模块来进行csv文件的读写操作
    import csv

  3. 实例:

csv文件如何操作?

这里提供的是对csv文件的直接操作,pandas里提供的是对拿出的copy版的dateframe文件操作

1.打开并返回一个文件对象
f1 = open(‘./店铺信息.csv’,‘w’,encoding = ‘utf-8’)

2.创建写方法对象
mywriter = csv.writer(f1)

3.(单/多)行写入操作

col = [‘店铺名’,‘人均’,‘口味’,‘环境’,‘服务’]
mywrite.writerow(col)

多行写入:writerows()
dates = [
[‘吼堂老火锅’,126,4.5,4.7,4.6],
[‘小龙坎’,100,4.8,4.8,4.7],
[‘巴蜀大宅门’,‘70’,‘4.8’,‘4.6’,4.8]
]
#写入文件都会转化成字符串格式,所以数字写啥格式都行

mywrite.writerows(dates)
f1.close

4.CSV读操作
看实例:
f2 = open(‘./店铺信息.csv’, ‘r’, encoding=‘utf-8’)
#创建读方法
myreader = csv.reader(f2)
for i in myreader:
# print(i)
for j in i:
print(‘{:<8}’.format(j), end=‘’)
print()

f2.close()

# 输出北京四个评分的平均分
import csv
f = open('./北京高档酒店价格分析.csv', 'r', encoding='utf-8')
dates = csv.reader(f)
date = list(dates)
f.close()

f = open('./北京酒店信息.csv', 'w', encoding='utf-8')

for i in date[1:]:
    avg = round((float(i[3]) + float(i[4]) + float(i[5]) + float(i[6])) / 4, 2)
    print(f'{i[0]}的平均分是{avg}')



# 0。注意,csv文件读出来的是,双重列表形式的 且文件对象,需要用构造器如list,来转换一下格式
# 1. 注意遍历出来的对象是什么,然后能用下标,就直接用下标,索引即可
# 2。构造器加上copy()出来的文件的时候,文件别关!!
# 3.读完文件要关,不能又读又写
  • 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、付费专栏及课程。

余额充值