问题描述:p3下有4个文件,一个文件内有若干行内容,每行内容属于一个id,要求在其他3个文件内找出包含id的内容,并将该行内容输出到新的文件。
java版
package com.example.demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Test2 {
public static void main(String[] args) throws IOException {
String path = "C:/Users/~~~/Desktop/p/p3";
File files = new File("C:/Users/~~~/Desktop/p/p3");
File outFiles = new File(path + File.separator + "汇总.txt");
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(outFiles));
BufferedWriter writer = new BufferedWriter(write);
String[] fileList = files.list();
for (String f : fileList) {
int i = 0;
File file = new File("C:/Users/~~~/Desktop/p/p3/~~~.txt");
FileInputStream fisR = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fisR, "UTF-8");
BufferedReader br = new BufferedReader(isr);
if ("pidcf.txt".equals(f) || "汇总.txt".equals(f)) {
continue;
}
String line = br.readLine();
while (line != null) {
i ++;
File p = new File(path + File.separator + f);
FileInputStream fis = new FileInputStream(p);
InputStreamReader is = new InputStreamReader(fis, "UTF-8");
BufferedReader b = new BufferedReader(is);
System.out.println(line+ " "+p.getName() + " "+i);
String content = getLine(b);
while (content != null) {
if (content != null && content.contains(line)) {
writer.write(content);
writer.newLine();
System.out.println("co");
}
content = getLine(b);
}
line = br.readLine();
fis.close();
is.close();
b.close();
}
writer.flush();
fisR.close();
isr.close();
br.close();
}
write.close();
writer.close();
}
private static String getLine(BufferedReader b) {
// TODO Auto-generated method stub
String str = null;
try {
str = b.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
}
python版
# -*-coding:utf-8-*-
import os
import time
tickstart = time.time()
path = "C:/Users/~~~/Desktop/p/p3"
print(path)
file_no = ['汇总.txt','pidcf.txt','test.txt']
file_r = os.listdir(path)
file_write = open(path + "/test.txt",'w')
# i=1
for file in file_r:
if file in file_no:
continue
# print(file + " " + )
file_index = open(path+"/pidcf.txt")
lines = file_index.readlines()
file_read = open(path + "/" + file,encoding='utf-8')
file_read_line = file_read.readlines()
i = 1
for line in lines:
print(file +" " + str(i) + " " + line)
# print(line)
# print(file_read_line)
# print(line)
for file_line in file_read_line:
if str(line).strip() in str(file_line):
print('co')
file_write.writelines(file_line)
file_write.write('\n')
i = i + 1
file_read.close()
file_index.close()
file_write.close()
tickend = time.time()
print(tickend-tickstart)
t = tickend - tickstart
t1 = round(t)/60/60
print('using :' + t1 +'h')