(1)按行读取文件studentInfo.txt的内容,获取学生姓名并写入到studentName.txt文件中,且给每一行按序加上行号;获取studentName.txt文件的长度及修改时间。 studentInfo.txt文件内容格式如下: 王珊珊,王珊珊,,20132213806,2015-10-10 14:30:56 张国辉,张国辉,,20132213944,2015-10-10 14:31:05 蒋宇宙,蒋宇宙,,20132213906,2015-10-10 14:31:24 王燕萍,王燕萍,,20132213847,2015-10-10 14:31:16
时间: 2023-08-14 17:08:20 浏览: 40
以下是Python代码实现:
```python
import os
# 读取 studentInfo.txt 文件内容并写入 studentName.txt 文件中
with open('studentInfo.txt', 'r') as f:
lines = f.readlines()
with open('studentName.txt', 'w') as f2:
for i, line in enumerate(lines):
name = line.split(',')[0]
f2.write(f'{i+1}. {name}\n')
# 获取 studentName.txt 文件长度和修改时间
name_file_size = os.path.getsize('studentName.txt')
name_file_mod_time = os.path.getmtime('studentName.txt')
print(f'Student Name file length: {name_file_size} bytes')
print(f'Student Name file modification time: {name_file_mod_time}')
```
运行后,会在当前目录下生成一个 `studentName.txt` 文件,其中每一行都带有行号和学生姓名。同时,会输出 `studentName.txt` 文件的长度和修改时间。
相关问题
给出以下题目的Java代码:按行读取文件studentInfo.txt的内容,获取学生姓名并写入到studentName.txt文件中,且给每一行按序加上行号;获取studentName.txt文件的长度及修改时间。 studentInfo.txt文件内容格式如下: 王珊珊,王珊珊,,20132213806,2015-10-10 14:30:56 张国辉,张国辉,,20132213944,2015-10-10 14:31:05 蒋宇宙,蒋宇宙,,20132213906,2015-10-10
以下为题目对应的Java代码:
```
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
public class Main {
public static void main(String[] args) {
try {
// 读取studentInfo.txt文件内容
File file = new File("studentInfo.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
int lineNumber = 1;
FileWriter writer = new FileWriter("studentName.txt");
while ((line = reader.readLine()) != null) {
// 获取学生姓名并写入到studentName.txt文件中
String name = line.split(",")[0];
writer.write(lineNumber + ". " + name + "\n");
lineNumber++;
}
reader.close();
writer.close();
// 获取studentName.txt文件的长度及修改时间
File studentNameFile = new File("studentName.txt");
long length = studentNameFile.length();
Date lastModified = new Date(studentNameFile.lastModified());
System.out.println("Length: " + length);
System.out.println("Last modified: " + lastModified);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
利用C++编写并测试程序,首先将3名学生的学号、姓名和成绩写入二进制文件studentinfo.dat中,然后将该文件中的数据读到结构体数组中,并将其输出到屏幕上。
好的,您可以参考下面的代码实现:
```c++
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
struct Student
{
int id;
char name[20];
double score;
};
int main()
{
// 将3名学生的信息写入二进制文件
Student students[3] = {
{1001, "Tom", 89.5},
{1002, "Jerry", 78.5},
{1003, "Alice", 92.0}
};
ofstream out("studentinfo.dat", ios::binary);
out.write((char*)students, sizeof(students));
out.close();
// 从二进制文件中读取数据到结构体数组中
Student read_students[3];
ifstream in("studentinfo.dat", ios::binary);
in.read((char*)read_students, sizeof(read_students));
in.close();
// 输出到屏幕上
cout << "学号\t姓名\t成绩" << endl;
for (int i = 0; i < 3; i++)
{
cout << read_students[i].id << "\t" << read_students[i].name << "\t" << read_students[i].score << endl;
}
return 0;
}
```
程序执行结果如下:
```
学号 姓名 成绩
1001 Tom 89.5
1002 Jerry 78.5
1003 Alice 92
```
这个程序的实现过程很简单,首先定义了一个结构体 `Student`,包含学号、姓名和成绩三个字段,然后将3名学生的信息写入二进制文件 `studentinfo.dat` 中,接着从二进制文件中读取数据到结构体数组 `read_students` 中,最后将数据输出到屏幕上。