Python 如何在txt.file中读取不';不要使用分隔符或固定宽度的大熊猫

Python 如何在txt.file中读取不';不要使用分隔符或固定宽度的大熊猫,python,regex,pandas,Python,Regex,Pandas,我正在处理一个原始数据,它是一个文本文件。但是,它没有分隔符或固定宽度。每列有不同的长度。例如,第1列的长度为12;第2列的长度为5;等等 我想知道在给定每列长度的情况下,是否有一些包中的函数可以处理此类文件。我认为可能有效的一种方法是使用正则表达式迭代每一行和每一列 假设没有分隔符,最简单的方法就是对字符串片段进行硬编码: with open("text.txt", "r+") as fh: for row in fh: row.write(row[0:12]+","+row[12

我正在处理一个原始数据,它是一个文本文件。但是,它没有分隔符或固定宽度。每列有不同的长度。例如,第1列的长度为12;第2列的长度为5;等等


我想知道在给定每列长度的情况下,是否有一些包中的函数可以处理此类文件。我认为可能有效的一种方法是使用正则表达式迭代每一行和每一列

假设没有分隔符,最简单的方法就是对字符串片段进行硬编码:

with open("text.txt", "r+") as fh:
  for row in fh:
    row.write(row[0:12]+","+row[12:17]+","+row[17:23]... ) #finish

然后,您可以在创建数据帧时指定分隔符

假设没有分隔符,最简单的方法就是对字符串片段进行硬编码:

with open("text.txt", "r+") as fh:
  for row in fh:
    row.write(row[0:12]+","+row[12:17]+","+row[17:23]... ) #finish

然后,您可以在创建数据帧时指定分隔符

这仍然是一个固定宽度的文件(这只是意味着每个字段的大小是固定的,不必相等)。因此,您可以使用
pandas.read_fwf
,将
宽度
参数设置为
[21,5,5,12…]
来阅读此内容。
这仍然是一个固定宽度的文件(这只是意味着每个字段的大小是固定的,不必相等)。因此,您可以使用
pandas.read_fwf
,将
宽度
参数设置为
[21,5,5,12…]
来阅读此内容。

这看起来是数据库表的架构。如果将表导出到文本文件,通常会指定一个分隔符(制表符/逗号)。您甚至可以将多个空格
\s+
与pandas的
read_table()
一起使用。请向我们显示文本文件。不幸的是,txt文件没有使用tab/space/逗号分隔列。我只知道柱子的长度。这就是我想看看这种文件是否有可用的函数的原因。我想更简单的方法是:
read\u csv(…,delim\u whitespace=True)
。文本文件是如何生成的?请再给我们看几行。你在告诉我们你的想法,但没有告诉我们它是什么。文件可以在这里下载:这看起来是数据库表的模式。如果将表导出到文本文件,通常会指定一个分隔符(制表符/逗号)。您甚至可以将多个空格
\s+
与pandas的
read_table()
一起使用。请向我们显示文本文件。不幸的是,txt文件没有使用tab/space/逗号分隔列。我只知道柱子的长度。这就是我想看看这种文件是否有可用的函数的原因。我想更简单的方法是:
read\u csv(…,delim\u whitespace=True)
。文本文件是如何生成的?请再给我们看几行。你在告诉我们你的想法,但没有告诉我们它是什么。文件可以在这里下载:该死的,我不知道这个存在。这正是我要找的东西!所有熊猫万岁!!该死的,我根本不知道这个存在。这正是我要找的东西!所有熊猫万岁!!是的,这是我尝试过的方法之一!再次感谢。是的,这是我尝试过的方法之一!再次感谢。