第二题:(文件) 1. 读取文件(在磁盘中新建一个文件为document.txt,将下面的内容复制到该文件中) 2. 将文件写出到document.txt.bak文件作为备份 3. 同时,将文件内标记为测试的数据行丢弃 document.txt文件内容: name,stundentID,birth,class,remarks 张三,001,20010101,1班,班长 李四,002,20020102,2班,团支书 王五,003,20030401,3班,班长 赵六,004,20020601,4班,测试 周七,005,20010205,5班,班长
时间: 2023-08-16 10:09:04 浏览: 31
代码如下:
```python
import shutil
# 读取文件
with open('document.txt', 'r', encoding='utf-8') as f:
content = f.readlines()
# 将文件写出到document.txt.bak文件作为备份
shutil.copyfile('document.txt', 'document.txt.bak')
# 将文件内标记为测试的数据行丢弃
new_content = []
for line in content:
if '测试' not in line:
new_content.append(line)
# 重新写入文件
with open('document.txt', 'w', encoding='utf-8') as f:
f.writelines(new_content)
```
执行完毕后,document.txt 文件中的内容变成:
```
name,stundentID,birth,class,remarks
张三,001,20010101,1班,班长
李四,002,20020102,2班,团支书
王五,003,20030401,3班,班长
周七,005,20010205,5班,班长
```
其中,原本包含“测试”的那行已经被删除了。备份文件 document.txt.bak 的内容和原文件相同。
相关问题
用idl实现:读取txt文件,并将第三列内容存储到一个字符串数组中
以下是示例IDL代码,可以读取文本文件并将第三列内容存储到一个字符串数组中:
```
pro read_txt_file, filename
openr, 1, filename, /GET_LUN
line = ""
cnt = 0
while not eof(1) do begin
readf, 1, line
if (n_elements(line) gt 0) then begin
cnt = cnt + 1
cols = strsplit(line, ' ')
if (n_elements(cols) ge 3) then begin
data[cnt] = cols[2]
endif
endif
endwhile
free_lun, 1
end
```
请注意,此代码假设文本文件中的列是用空格分隔的。如果使用其他分隔符,需要相应地调整代码中的分隔符。
:编写一个 Java 程序,把文件 myfile.txt 内容复制到文件 yourfile.txt 文件中, 使程序运行结果如图所示。
以下是一个示例代码,实现将myfile.txt文件的内容复制到yourfile.txt文件中:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) {
// 指定源文件和目标文件的路径
File sourceFile = new File("myfile.txt");
File targetFile = new File("yourfile.txt");
FileInputStream inputStream = null;
FileOutputStream outputStream = null;
try {
// 创建输入流读取源文件内容,创建输出流复制到目标文件中
inputStream = new FileInputStream(sourceFile);
outputStream = new FileOutputStream(targetFile);
// 读取源文件内容并复制到目标文件中
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
System.out.println("复制完成!");
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭输入流和输出流
try {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在上述代码中,我们使用了FileInputStream和FileOutputStream类来读取和写入文件。代码会将myfile.txt的内容复制到yourfile.txt中,并在控制台输出"复制完成!"。请确保在运行代码前,当前目录中存在myfile.txt文件。