我已经能够遍历一个tar文件中的文件,但是我仍然坚持如何以字符串的形式读取那些文件的内容。我想知道如何将文件内容打印为字符串?
这是我的下面的代码
package main
import (
"archive/tar"
"fmt"
"io"
"log"
"os"
"bytes"
"compress/gzip"
)
func main() {
file, err := os.Open("testtar.tar.gz")
archive, err := gzip.NewReader(file)
if err != nil {
fmt.Println("There is a problem with os.Open")
}
tr := tar.NewReader(archive)
for {
hdr, err := tr.Next()
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
fmt.Printf("Contents of %s:\n", hdr.Name)
}
}
只需将tar.Reader用作要读取的每个文件的io.Reader。
tr := tar.NewReader(r)
// get the next file entry
h, _ := tr.Next()
如果您需要整个文件作为字符串:
// read the complete content of the file h.Name into the bs []byte
bs, _ := ioutil.ReadAll(tr)
// convert the []byte to a string
s := string(bs)
如果您需要逐行阅读,则更好:
// create a Scanner for reading line by line
s := bufio.NewScanner(tr)
// line reading loop
for s.Scan() {
// read the current last read line of text
l := s.Text()
// ...and do something with l
}
// you should check for error at this point
if s.Err() != nil {
// handle it
}
问题内容: 我设法使我的第一个python脚本起作用,该脚本从URL下载.ZIP文件的列表,然后继续提取ZIP文件并将其写入磁盘。 我现在无所适从,无法实现下一步。 我的主要目标是下载并提取zip文件,并通过TCP流传递内容(CSV数据)。如果可以的话,我宁愿不实际将任何zip或解压缩的文件写入磁盘。 这是我当前的脚本,可以运行,但是不幸的是必须将文件写入磁盘。 问题答案: 我的建议是使用一个对象
我想提取Unix tar xvf/home/test/group中的tar文件。tar和提取后得到一个文件夹组,其中包含xls、pdf和txt文件列表。 我怎样才能提取内容的group.tar /home/test/list的xls, pdf文件没有创建组文件夹。 任何特定的命令可用或必须跟随复制和移动?? 谢啦!
问题内容: 我有一个tar文件,其中包含许多文件。我需要编写一个python脚本,该脚本将读取文件的内容并提供总数字符的计数,包括字母,空格,换行符的总数,所有内容,而无需解压缩tar文件。 问题答案: 您可以使用 之后,您可以用来将成员提取为文件对象。只是一个例子 对于上面示例中的文件对象,可以使用,等等。
问题内容: 如何从命令外壳中获得与.zip文件(而不是gzip)的等价形式,而无需将其解压缩?也就是说,如何列出.zip压缩文件中压缩的不同文件? 问题答案: Perreal的答案是正确的,但我建议安装工具(在发行版的软件包管理器中查找)。然后,对于任何类型的存档文件,bzip2,gzip,tar …,您只需记住一个命令:
本文向大家介绍Linux下的tar压缩解压缩命令详解(小结),包括了Linux下的tar压缩解压缩命令详解(小结)的使用技巧和注意事项,需要的朋友参考一下 tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选
我的GCP云存储桶中有很多.tar文件。每个.tar文件都有多个图层。我想使用GCP数据流解压缩这些.tar文件,并将它们放回另一个GCP存储桶中。 我找到了Google提供的用于批量解压缩云存储文件的实用工具模板,但它不支持.tar文件扩展名。 也许我应该在上传到云端之前尝试解压文件,或者Beam中是否存在其他内容? 每个tar文件未经压缩大约有15 TB。