在Python中合并多个.txt/csv文件

在Python中合并多个.txt/csv文件,python,python-3.x,Python,Python 3.x,我在一个目录中有多个.txt文件,我想通过在python中导入将它们合并为一个文件。这里的要点是,在合并之后,我想将其转换为一个csv文件,整个程序都基于该文件 到目前为止,我只需输入一个.txt文件,并通过以下代码将其转换为csv文件: import io bytes = open('XYZ.txt', 'rb').read() df=pd.read_csv(io.StringIO(bytes.decode('utf-8')), sep='\t', parse_dates=['Time'] )

我在一个目录中有多个
.txt
文件,我想通过在python中导入将它们合并为一个文件。这里的要点是,在合并之后,我想将其转换为一个
csv
文件,整个程序都基于该文件

到目前为止,我只需输入一个
.txt
文件,并通过以下代码将其转换为
csv
文件:

import io
bytes = open('XYZ.txt', 'rb').read()
df=pd.read_csv(io.StringIO(bytes.decode('utf-8')), sep='\t', parse_dates=['Time'] )
df.head()

现在我需要输入多个
.txt
文件,合并它们,然后将它们转换为csv文件。有什么解决方法吗?

如果标题相同,那么应该像这样简单

import os
import io

merged_df = pd.DataFrame()
for file in os.listdir("PATH_OF_DIRECTORY"):
    if file.endswith(".txt"):
        bytes = open(file, 'rb').read()
        merged_df = merged_df.append(pd.read_csv(io.StringIO(
            bytes.decode('utf-8')), sep='\t', parse_dates=['Time']))

print(len(merged_df))

如果标题是相同的,那么应该像这样简单

import os
import io

merged_df = pd.DataFrame()
for file in os.listdir("PATH_OF_DIRECTORY"):
    if file.endswith(".txt"):
        bytes = open(file, 'rb').read()
        merged_df = merged_df.append(pd.read_csv(io.StringIO(
            bytes.decode('utf-8')), sep='\t', parse_dates=['Time']))

print(len(merged_df))


您的文件标题是否相同?是。只需要合并列中的数据,您不需要这样做,如果这样做的话,标准库中的csv模块也可以,这些通常称为文件,所以您的问题是如何将tsv转换为csv?文件的标题是否相同?是的。只需合并列中的数据您不需要这样做,如果这样做的话,标准库中的csv模块也可以很好地完成,这些通常被称为文件,所以,你的问题是如何将tsv转换为csv?你可以通过执行一些字符串过滤器或正则表达式操作来操作文件列表。你能告诉我如何编辑它,使它只接受.txt文件吗?目录中有4个.txt文件,它只接受一个。工作方式与我为读取1个文件编写的代码相同,然后确保路径正确,所有扩展名都是“.txt”(匹配大小写),因为这是非常简单的代码。路径正确,因为它读取一个文件。其他文件也是.txt。不工作。奇怪的谢谢你,伙计!您可以通过执行一些字符串过滤器或正则表达式操作来操作文件列表。您能告诉我如何编辑它,使其只接受.txt文件吗?目录中有4个.txt文件,它只接受一个。工作方式与我为读取1个文件编写的代码相同,然后确保路径正确,所有扩展名都是“.txt”(匹配大小写),因为这是非常简单的代码。路径正确,因为它读取一个文件。其他文件也是.txt。不工作。奇怪的谢谢你,伙计!你能解释一下为什么你认为这是一个解决方案吗?您的代码与问题中的代码有何不同?您能解释一下为什么您认为这是一个解决方案吗?您的代码与问题中的代码有何不同?