繁体   English   中英

将txt文件与文件名合并

[英]Combine txt files with file names

我想将 txt 文件合并为一个 txt 文件。 下面的代码工作正常。 但唯一的问题是我不明白哪些字符串来自哪个txt。

import glob

read_files = glob.glob("*.txt")

with open("result.txt", "wb") as outfile:
    for f in read_files:
        with open(f, "rb") as infile:
            outfile.write(infile.read())

我希望结果看起来像:

file1.txt
string1
string2
file2.txt
string3
string4

使用pickle将文件名dumpresult.txt

import glob
import pickle

read_files = glob.glob("*.txt")

with open("abc.txt", "wb") as outfile:
    for f in read_files:
        with open(f, "rb") as infile:
            pickle.dump(f, outfile)
            outfile.write(infile.read())

您可以将dump用于 outfile.write() 部分,如下所示: pickle.dump(infile.read(), outfile)

注意:最好将.dat用于二进制文件,将.txt用于纯文本文件。

下面的代码完全按照我的意愿工作。 首先,我尝试打印保存文件名的 f 变量。 outfile.write(f)但由于我在 "rb" 模式下打开文件,我得到了错误: TypeError: a bytes-like object is required, not 'str' 根据朋友的建议,我将代码更改为outfile.write(f.encode()) 在这里,我不知道encode()方法是做什么的。 也许有人解释。 然后,我使用outfile.write("\n".encode())在文件名之后开始新行。 最终代码是:

import glob

read_files = glob.glob("*.txt")

with open("result.txt", "wb") as outfile:
    for f in read_files:
        with open(f, "rb") as infile:
            outfile.write(f.encode())
            outfile.write("\n".encode())
            outfile.write(infile.read())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM