读取两个文件中的行数,写入第三个文件

有一个联行号的文件,和一个银行文件,需要读取联行号文件中的某行,用银行文件中的行替换,联行号文件的第四列编号为银行文件的编号,需要把银行名称和银行网点显示在第三个文件中。

联行号文件的内容如下:



105588073429,,,105,105581000018,,,,5880,,,,中国建设银行股份有限公司顺德大良支行,,,,,,,,,,,,,,
105588073437,,,105,105581000018,,,,5880,,,,中国建设银行股份有限公司顺德锦湖支行,,,,,,,,,,,,,,
//以下省略


银行文件的内容如下:


104|中国银行
105|中国建设银行
313|城市商业银行
314|农村商业银行
//以下省略


结果文件


中国建设银行,中国建设银行股份有限公司顺德大良支行
中国建设银行,中国建设银行股份有限公司顺德锦湖支行
//以下省略



package com.xjh.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* 联行号的拆分 (2013-01-11)
* @author xiejiaohui
*
*/
public class LianHanghao {

public static void main(String[] args) throws Exception {
printNowDate();
File lianHangHao_file = new File("d:\\LianHangHao3.txt");
File bankCode_file = new File("d:\\BankCode.txt");
File result_file = new File("d:\\result.txt");

// BufferedReader lianHanghao = new BufferedReader(new FileReader("d:\\LianHangHao2.txt"));
// BufferedReader lianHanghao = new BufferedReader(new InputStreamReader(new FileInputStream(lianHangHao_file),"GB2312"));
BufferedReader lianHanghao = new BufferedReader(new InputStreamReader(new FileInputStream(lianHangHao_file),"GBK"));

// FileWriter result_bw = new FileWriter(new File("d:\\result.txt"));
// BufferedWriter result_bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(result_file), "utf-8"));
// BufferedWriter result_bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(result_file), "GB2312"));
BufferedWriter result_bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(result_file), "GBK"));

String lianHanghao_line;
String bankCode_line;
try {
while ((lianHanghao_line = lianHanghao.readLine()) != null) {
if (!lianHanghao_line.contains(",")) {
if (lianHanghao_line.length() > 0) {
println("这行格式有问题: " + lianHanghao_line);
}
continue;
}
String[] l_h_h = lianHanghao_line.split(",");
// BufferedReader bankCode = new BufferedReader(new InputStreamReader(new FileInputStream(bankCode_file),"utf-8"));
// BufferedReader bankCode = new BufferedReader(new InputStreamReader(new FileInputStream(bankCode_file),"GB2312"));
BufferedReader bankCode = new BufferedReader(new InputStreamReader(new FileInputStream(bankCode_file),"GBK"));
while ((bankCode_line = bankCode.readLine()) != null) {
String[] b_l = bankCode_line.split("\\|");
if (l_h_h[3].equals(b_l[0])) {
result_bw.append(b_l[1]);
break;
} else {
continue;
}
}
result_bw.append(",");
result_bw.append(l_h_h[12]);
result_bw.append("\n");
bankCode.close();
}
} finally {
lianHanghao.close();
result_bw.close();
}
printNowDate();
}

public static void println(String input) {
System.out.println(input);
}

public static void printNowDate() {
println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}

}



这个程序需要读取两个文件,写入一个文件,我得出如下情况

如果读入的两个文件,保存的格式都是 ANSI/ASCII 则读取文件的InputStreamReader必须为GBK否则有乱码

如果读取的两个文件,保存的格式都是 UTF-8 则读取文件的InputStreamReader必须为utf-8否则有乱码

两个读入的文件,一个是 UTF-8 保存的,另外一个是 ANSI/ASCII 保存,只要读取文件的 InputStreamReader 格式跟文件保存格式保持一致,不会出现乱码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python读取多个txt文件并将文件一行的值全部写入Excel,可以采用以下步骤: 1、首先需要安装Python的Excel操作库openpyxl,可以在命令行输入“pip install openpyxl”进行安装。 2、然后需要确定txt文件的路径,可以使用Python的os模块的方法,如os.listdir()获取对应文件夹下的文件名列表。 3、用Python的for循环依次读取每个txt文件,并获取需要写入到Excel的某一行的值,可以使用Python的with open()方法打开文件,使用readlines()方法读取文件的每一行,最后使用split()方法或正则表达式提取需要的行数据。 4、使用openpyxl操作Excel,首先需要打开或创建一个Excel文件和一个工作簿(Workbook),然后使用Active方法获取具体的工作表(Worksheet),并根据读取的txt文件行数据在Excel对应的行进行数写入,可以使用Python的for循环和Worksheet.cell(row,column,value)方法进行写入。 5、最后需要保存修改后的Excel文件,可以使用Python的Workbook.save()方法保存文件。 总之,Python读取多个txt文件,并将文件一行的值全部写入Excel的实现,需要结合Python的文件操作、正则表达式和Excel操作等内容,通过掌握对应的Python库和方法,应该可以完成较为简单的CSV或TXT数据的读取和导入工作。 ### 回答2: Python可以通过多种方式读取多个txt文件,并将文件一行的值全部写入Excel。其比较常见的方式是使用xlwt和xlrd库,这两个库可以分别用于Excel的写入读取。 以下是一种通用的Python脚本,可以读取指定目录下所有txt文件,将文件一行的值全部写入Excel的同一列: ```python import os import xlwt import xlrd # 设置txt文件路径和Excel文件路径 txt_path = "txt_files" excel_path = "output.xls" # 创建Excel文件,并设置第一行标题 wb = xlwt.Workbook() ws = wb.add_sheet("Sheet1") headers = ["文件名", "指定行内容"] for i, header in enumerate(headers): ws.write(0, i, header) # 获取txt文件列表,并遍历每个文件 files = os.listdir(txt_path) row = 1 # 从第二行开始写入数据 for file in files: if file.endswith(".txt"): # 读取txt文件指定行的内容 with open(os.path.join(txt_path, file), "r") as f: lines = f.readlines() content = lines[1].strip() # 假设需要获取第二行的内容 # 将文件名和指定行的内容写入Excel ws.write(row, 0, file) ws.write(row, 1, content) row += 1 # 保存Excel文件 wb.save(excel_path) print("数据已写入Excel文件") ``` 在以上脚本,首先需要指定txt文件和Excel文件的路径。然后使用xlwt库创建一个Excel文件,并设置第一行标题。接着通过os库获取txt文件列表,并逐个打开文件读取指定行的内容。最后将文件名和指定行内容写入Excel,并保存Excel文件。 需要注意的是,为了让以上脚本能正常运行,需要先安装xlwt、xlrd和os三个库。可以使用pip命令进行安装,如下所示: ``` pip install xlwt pip install xlrd pip install os ``` 以上是一种Python读取多个txt文件,并将文件一行的值全部写入Excel的基本方法。如果需要更加复杂的操作,可以根据具体需求进行调整。 ### 回答3: Python作为一种高级编程语言,拥有强大的文本处理能力,可以轻松读取多个txt文件,并将文件一行的值全部写入Excel表格。 首先,我们需要导入Python的相关模块,包括os和xlwt,代码如下: ```Python import os import xlwt ``` 其,os模块是Python专门用于文件和目录操作的模块,而xlwt则是Python用于创建和写入Excel文件的模块。 接下来,我们需要设置读取的txt文件夹路径和要查询的行数,代码如下: ```Python path = './txt' # txt文件夹路径 row_num = 2 # 要查询的行数,以第2行为例 ``` 这里,我们设置了txt文件夹路径为'./txt',即当前文件夹下的txt文件夹。同时,我们也设置了要查询的行数为2,即第2行的数据。 接下来,我们需要遍历txt文件夹下的所有文件,并在每个文件读取指定行数的数据,代码如下: ```Python book = xlwt.Workbook() # 创建一个Excel工作簿 sheet1 = book.add_sheet('sheet1', cell_overwrite_ok=True) # 在工作簿创建sheet1 row_count = 0 # 工作表行数 # 遍历txt文件夹下的所有文件 for root, dirs, files in os.walk(path): for file in files: if file.endswith('.txt'): # 判断是否为txt文件 file_path = os.path.join(root, file) # 获取文件完整路径 with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 读取文件所有行 row_data = lines[row_num - 1] # 获取指定行数据 # 写入Excel表格 for col, data in enumerate(row_data.strip().split('\t')): sheet1.write(row_count, col, data) row_count += 1 # 工作表行数加1 ``` 在代码,我们先创建了一个Excel工作簿,并在其创建了一个名为sheet1的工作表。然后,我们使用os.walk()函数遍历txt文件夹下的所有文件,对于每个以'.txt'结尾的文件,我们获取其完整路径,并使用open()函数打开文件读取其所有行。接着,我们使用readlines()函数读取指定行数的数据,将其按照'\t'分割,并将数据依次写入Excel表格。 最后,我们需要将Excel文件保存到本地,代码如下: ```Python book.save('data.xls') # 保存Excel文件 ``` 完整代码如下: ```Python import os import xlwt path = './txt' # txt文件夹路径 row_num = 2 # 要查询的行数,以第2行为例 book = xlwt.Workbook() # 创建一个Excel工作簿 sheet1 = book.add_sheet('sheet1', cell_overwrite_ok=True) # 在工作簿创建sheet1 row_count = 0 # 工作表行数 # 遍历txt文件夹下的所有文件 for root, dirs, files in os.walk(path): for file in files: if file.endswith('.txt'): # 判断是否为txt文件 file_path = os.path.join(root, file) # 获取文件完整路径 with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 读取文件所有行 row_data = lines[row_num - 1] # 获取指定行数据 # 写入Excel表格 for col, data in enumerate(row_data.strip().split('\t')): sheet1.write(row_count, col, data) row_count += 1 # 工作表行数加1 book.save('data.xls') # 保存Excel文件 ``` 这段代码可实现读取多个txt文件,并将文件一行的值全部写入Excel表格,并将Excel文件保存到本地。如果有需要,还可以进一步优化代码的结构和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值