4.读取学生成绩单数据文件 scoredata.csv,单独再加一列,平均分大于80分 及以上的为优良,60 分以下的为不合格,60 分及以上到 80 分为合格,并求出优良、 不合格、合格所占比例。
时间: 2024-03-26 16:41:37 浏览: 37
好的,我明白了您的问题。首先,我需要确认您的操作系统是 Windows 还是 Linux,因为命令略有不同。假设您的操作系统是 Windows,可以按照以下步骤进行操作:
1. 打开命令提示符或 PowerShell 终端窗口。
2. 进入存放 scoredata.csv 文件的目录,可以使用 cd 命令切换目录。
3. 使用以下命令在 scoredata.csv 文件中添加一列,并将结果保存到新文件 output.csv 中:
```
type scoredata.csv | % { $line = $_ + ',';
$fields = $line.Split(',');
$sum = 0;
$count = 0;
foreach ($f in $fields[1..$fields.Length]) {
$sum += [double]$f;
$count += 1;
}
$avg = $sum / $count;
if ($avg >= 80) {
$line += '优良';
} elseif ($avg < 60) {
$line += '不合格';
} else {
$line += '合格';
}
$line;
} | Out-File output.csv -Encoding UTF8
```
4. 使用以下命令统计优良、不合格、合格所占比例,并输出到屏幕上:
```
$total = (Get-Content output.csv).Count - 1; # 减去标题行
$excellent = (Get-Content output.csv | Select-String -Pattern '优良').Count;
$pass = (Get-Content output.csv | Select-String -Pattern '合格').Count;
$fail = (Get-Content output.csv | Select-String -Pattern '不合格').Count;
Write-Host "优良: $excellent, 占比: $([math]::Round($excellent / $total * 100, 2))%";
Write-Host "合格: $pass, 占比: $([math]::Round($pass / $total * 100, 2))%";
Write-Host "不合格: $fail, 占比: $([math]::Round($fail / $total * 100, 2))%";
```
以上命令的核心是使用 PowerShell 的管道操作符 | 和 %,将每一行数据读取出来,计算平均分并添加新列,最后输出到新文件中。统计优良、不合格、合格所占比例的命令使用 Get-Content 和 Select-String 函数,分别读取文件内容和匹配关键字。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)