Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取特殊的txt文件作为正常的数据帧。分隔符|&引用;,编码ANSI_Python_Python 3.x_Pandas_Dataframe_Text - Fatal编程技术网

Python 如何读取特殊的txt文件作为正常的数据帧。分隔符|&引用;,编码ANSI

Python 如何读取特殊的txt文件作为正常的数据帧。分隔符|&引用;,编码ANSI,python,python-3.x,pandas,dataframe,text,Python,Python 3.x,Pandas,Dataframe,Text,我有一份来自SAP的txt文件格式的报告,使用的编码(根据IT人员)是“ANSI”。我可以看到分隔符是“|” 这是我第一次处理这样的文件,我只想像平常一样读取它,但我无法做到这一点。我肯定我做错了什么,但不明白是什么 我在这里读了一些类似于此链接的解决方案,但我一直得到空结果 我真的很感激任何帮助,因为我有12个这样的文件 该文件如下所示: 5.04.2021 Lieferungen mit Auftragsdaten

我有一份来自SAP的txt文件格式的报告,使用的编码(根据IT人员)是“ANSI”。我可以看到分隔符是“|”

这是我第一次处理这样的文件,我只想像平常一样读取它,但我无法做到这一点。我肯定我做错了什么,但不明白是什么

我在这里读了一些类似于此链接的解决方案,但我一直得到空结果

我真的很感激任何帮助,因为我有12个这样的文件

该文件如下所示:

    5.04.2021 
Lieferungen mit Auftragsdaten                                                                                              1
    
    | Lieferung |   Pos|Angel.am  |VStl|LFArt| |
    |------------------------------------------|
    | 9888477351|000010|24.01.2020|LC01|ZLSO   |
    | 9888401282|000010|11.01.2020|LC03|ZLSO   |

您可以使用read table手动修复所有问题,如下所示:

import pandas as pd

t = \
"""
5.04.2021 
Lieferungen mit Auftragsdaten                                                                                              1
    
    | Lieferung |   Pos|Angel.am  |VStl|LFArt| |
    |------------------------------------------|
    | 9888477351|000010|24.01.2020|LC01|ZLSO   |
    | 9888401282|000010|11.01.2020|LC03|ZLSO   |
"""

with open('t.txt', 'w') as fn:
    fn.write(t)

df = pd.read_table('t.txt', sep="|", header=2)
df = df[1:]
df = df[df.columns[1:-2]]
df.columns = [c.strip() for c in df.columns]
df.reset_index(drop=True, inplace=True)
列弗隆 销售时点情报系统 安吉尔·阿姆 VStl 阿尔法特 0 9888477351 10 24.01.2020 立法会一题 兹尔索 1. 9888401282 10 11.01.2020 立法会三题 兹尔索