python读取excel
这篇文章的主要原因是尝试不要重复自己( DRY ),因为通常,我会遇到读写压缩文件和非压缩文件(主要是JSON和CSV)的递归需求。
首先让我们看看如何读取文本文件。 注意我正在使用(相对较小的)文本文件,因此:
- read方法返回一个包含全部内容的String。
- 我正在使用
BufferedReader
逐行读取。
private String readFile(String fileName) {
StringBuilder sb = new StringBuilder();
try {
BufferedReader input = new BufferedReader(new FileReader(new File(fileName)));
try {
String line = null;
while ((line = input.readLine()) != null) {
sb.append(line);
}
} finally {
input.close();
}
} catch (IOException ex) {
// Handle exception
return null;
}
return sb.toString();
}
注意:做事的方法不只一种。 在条目读取文本文件的最佳方法中,您可以找到许多不同的方法来读取文本文件,具体取决于您的JDK版本和文件大小。
类似于将String写入文件:
private void writeFile(String fileName, String value) {
try {
FileWriter fw = new FileWriter(fileName);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(value);
bw.close();
} catch (IOException ex) {
// Handle exception
}
}
要读取/写入带有二进制数据的压缩文件,我们需要使用流和缓冲区。 因此,要读取GZIP压缩文件并获取字符串:
private String readCompressedFile(String fileName) {
try {
GZIPInputStream gis = new GZIPInputStream(new FileInputStream(fileName));
ByteArrayOutputStream fos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = gis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.close();
gis.close();
return new String(fos.toByteArray());
} catch (IOException ex) {
// Handle exception
return null;
}
}
并类似地将字符串写入GZip压缩文件:
private void writeCompressedFile(String fileName, String value) {
try {
InputStream is = new ByteArrayInputStream(value.getBytes());
GZIPOutputStream gzipOS = new GZIPOutputStream(new FileOutputStream(fileName));
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) {
gzipOS.write(buffer, 0, len);
}
gzipOS.close();
is.close();
} catch (IOException ex) {
// Handle exception
}
}
资源资源
接下来,您可以找到用于各种JDK版本的Java代码的两个重要链接:
python读取excel