Python程序---文件操作

1、 课程信息表

import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
import  csv
plt.rcParams['font.sans-serif'] = 'simHei'  #显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 默认是使用Unicode负号,设置正常显示字符,如正常显示负号

# 读入数据文件,设置编码方式为utf-8
file = open(r"D:/PycharmProjects/course(1).csv","r",encoding='utf-8')
course_data = file.read()
print(course_data)
print('\n\n')

# 把读入的网易云课堂字符串数据转换成二维列表
rows = course_data.split('\n')  # rows类型是列表
print(rows)
print('\n\n')

final_data = []
for row in rows:
    split_list = row.split(',')
    final_data.append(split_list)
print(final_data)
print('\n\n')

# 显示前10门课
list10 = final_data[1:11]
print(list10)
print('\n\n')

# 显示前10门课的课程名
for row in list10:
    print(row[0])
print('\n\n')

# 将前10门课的课程名保存到一个单独的列表中
c_name = []
list10 = final_data[1:11]
for row in list10:
    c_name.append(row[0])
print("前10门课程是:",c_name)
print('\n\n')

# 将课程名称、课程价格和选课人数保存到两个列表中,类型分别为float 和int  
# 数据类型无法进行转换,数据中可能存在\t \n 空格等,需要检查数据集
c_name_all = []
c_price = []
c_num = []
for row in final_data[1:len(final_data)]:
    c_name_all.append(row[0])
    c_price.append(float(row[2]))
    c_num.append(int(row[3]))
print("课程名称的列表:",c_name_all)
print("课程价格的列表:",c_price)
print("选课人数的列表:",c_num)
print('\n\n')

# 选课人数最多课程信息
c_max = 0
index = 0
imax = 0
for row in c_num:
    if c_max < row:
        c_max = row
        imax = index + 1
    index += 1
print("选课人数最多的课程是:第 %d 条 记录" % imax, final_data[imax])
print('\n\n')

# 价格最贵的课程信息
c_max = 0
index = 0
imax = 0
for row in c_price:
    if c_max < row:
        c_max = row
        imax = index+1
    index += 1
print("价格最贵的课程是:第 %d 条 记录" % imax, final_data[imax])
print('\n\n')

# 发现课程价格和选课人数的关系
length = len(c_price)
datasets_X = np.array(c_price).reshape([length,1])
datasets_Y = np.array(c_num)

# 图像中显示
plt.scatter(datasets_X, datasets_Y, color = 'red')
plt.xlabel('价格')
plt.ylabel('选课人数')
plt.show()

course_dict = dict(zip(c_name_all,c_price))
print(course_dict)

# python3.x csv 文件写入方式和Python2.x不一样
file_dict = "D:/PycharmProjects/course(1).csv"
with open(file_dict,'w',encoding='utf-8',newline='') as csv_file:
    writer = csv.writer(csv_file)
    for key,value in course_dict.items():
        writer.writerow([key,value])

2、分数线表

#0.读出文件
file = open(r"D:/Work/2014.xls","r",encoding='utf-8')
data = file.read()
#print(data)
print('\n\n')

#1.使用 split()方法将字符串对象转换为列表,存储到rows中。分隔符为“\n”。
rows = data.split('\n')
print(rows)
print('\n\n')

#2.创建一个名为 int_score 的整型列表变量,用于存放rows列表中各分数的值。创建一个名为 final_list 的列表变量,用于存放列表。
final_list = []
for row in rows:
    split_list = row.split(',')
    final_list.append(split_list)
print(final_list)
print('\n\n')

int_score = []
for row in final_list[1:len(final_list)]:
    int_score.append(int(row[4]))
print('存放分数的列表的值:',int_score)
print('\n\n')

#3. 使用sort()方法对int_score排序。
int_score.sort()#从小到大
print(int_score)
print('\n\n')
int_score.sort(reverse=True)#从大到小
print(int_score)
print('\n\n')

#4.返回第一个列表的元素:[‘北京’, ’2014’, ’理科’, ’本科一批’, ’543’]
print(final_list[1])

#5.返回第1个列表的第1个元素:”北京”;返回第2个列表的第3个元素:”理科”;
print(final_list[1][0])
print(final_list[2][2])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值