填空题:**读取文本文件内容,处理数据后存入到CSV文件中**
**读取文本文件内容,处理数据后存入到CSV文件中**
用水量文件"**water.txt**"的每一行记录了一个用户的用水量,其中第1列为用户账号,第2列为用水量起始值 ,第3列为第1月末用水量读数,依次类推,最后一列是第12月末读数。每个月的用水量计算公式是后一个数减去前一个数,共12个月。每立方米需付1.05元。编程计算每户一年的水费。文件内容如下图所示:
![water文件内容.png](~/b4f15161-71ad-4ce1-b571-7ec36bc66d98.png)
编写程序读取文本文件内容,计算用户每月水费并将结果写入到“**water.csv**”中,结果如下图所示:
![水费CSV.png](~/8111c37d-4e0e-414a-a16b-ca7e87c6a1cc.png)
**完成上述功能的程序代码如下。请填空(注意所填答案前后不能有空格)。**
import csv
fr = open('', 'r') # 读取文件
fw = open('water.csv', 'w', newline='')
head_lst = ["账号", "1月水费", "2月水费", "3月水费", "4月水费", "5月水费", "6月水费", \
"7月水费", "8月水费", "9月水费", "10月水费", "11月水费", "12月水费"] # 标题行
wr = csv.writer(fw, head_lst)
# 写入第1行标题
for line in fr:
line = line.split() # 把文件的每一行列表化
if not line: # 如果为空行就进入下一轮循环
new_line = [line[0]] # 用户名放入列表(新列表用来存放对应用户每月的水费)
for i in range(1, len(line) - 1):
month_fee = 1.05 * () # 每月水费
new_line += [str(round(month_fee, 2))] # 水费保留两位小数,放入新列表
fr.close()
答案:
第1空:water.txt ||
第2空:wr.writerow(head_lst) || wr.writerow( head_lst ) ||
第3空:continue ||
第4空:int(line[i + 1]) - int(line[i]) || int(line[i+1])-int(line[i]) || int(line[i + 1])-int(line[i]) || int(line[i+1]) - int(line[i]) || float(line[i + 1]) - float(line[i]) || float(line[i+1])-float(line[i]) || float(line[i + 1])-float(line[i]) || float(line[i+1]) - float(line[i]) ||
第5空:wr.writerow(new_line) || wr.writerow( new_line ) ||
第6空:fw.close() || fw.close( ) ||
用水量文件"**water.txt**"的每一行记录了一个用户的用水量,其中第1列为用户账号,第2列为用水量起始值 ,第3列为第1月末用水量读数,依次类推,最后一列是第12月末读数。每个月的用水量计算公式是后一个数减去前一个数,共12个月。每立方米需付1.05元。编程计算每户一年的水费。文件内容如下图所示:
![water文件内容.png](~/b4f15161-71ad-4ce1-b571-7ec36bc66d98.png)
编写程序读取文本文件内容,计算用户每月水费并将结果写入到“**water.csv**”中,结果如下图所示:
![水费CSV.png](~/8111c37d-4e0e-414a-a16b-ca7e87c6a1cc.png)
**完成上述功能的程序代码如下。请填空(注意所填答案前后不能有空格)。**
import csv
fr = open('', 'r') # 读取文件
fw = open('water.csv', 'w', newline='')
head_lst = ["账号", "1月水费", "2月水费", "3月水费", "4月水费", "5月水费", "6月水费", \
"7月水费", "8月水费", "9月水费", "10月水费", "11月水费", "12月水费"] # 标题行
wr = csv.writer(fw, head_lst)
# 写入第1行标题
for line in fr:
line = line.split() # 把文件的每一行列表化
if not line: # 如果为空行就进入下一轮循环
new_line = [line[0]] # 用户名放入列表(新列表用来存放对应用户每月的水费)
for i in range(1, len(line) - 1):
month_fee = 1.05 * () # 每月水费
new_line += [str(round(month_fee, 2))] # 水费保留两位小数,放入新列表
fr.close()
答案:
第1空:water.txt ||
第2空:wr.writerow(head_lst) || wr.writerow( head_lst ) ||
第3空:continue ||
第4空:int(line[i + 1]) - int(line[i]) || int(line[i+1])-int(line[i]) || int(line[i + 1])-int(line[i]) || int(line[i+1]) - int(line[i]) || float(line[i + 1]) - float(line[i]) || float(line[i+1])-float(line[i]) || float(line[i + 1])-float(line[i]) || float(line[i+1]) - float(line[i]) ||
第5空:wr.writerow(new_line) || wr.writerow( new_line ) ||
第6空:fw.close() || fw.close( ) ||