【发布时间】:2018-05-29 21:36:18
【问题描述】:
我是一个不错的 SAS 程序员,但我对 Python 还是很陌生。现在,我收到了 Twitter 提要,每个提要都保存在 非常大 平面文件中,标题位于第 1 行,数据结构如下:
CREATED_AT||||ID||||TEXT||||IN_REPLY_TO_USER_ID||||NAME||||SCREEN_NAME||||DESCRIPTION||||FOLLOWERS_COUNT||||TIME_ZONE||||QUOTE_COUNT|||| REPLY_COUNT||||RETWEET_COUNT||||FAVORITE_COUNT 2017 年 11 月 14 日星期二 12:33:00 +0000||||930413253766791168||||ICYMI:足球俱乐部加入精酿啤酒革命!好好读书|||| ||||BAB||||BABBrewers||||在珠宝区 1000 Trades 举行的每月自制聚会。每个月的第一个星期二。欢迎大家,即使您以前从未酿造过。||||95|||| ||||0||||0||||0||||0 2017 年 11 月 14 日星期二 12:34:00 +0000||||930413253766821456||||我准备好了|||| ||||Misty||||MistyGrl||||你可以做到!||||45|||| ||||0||||0||||0||||0我想是这样的,因为任何类型的字符都可以在 Twitter 提要中找到,但四重管道不太可能。
我知道有些人为此使用 JSON,但我有这些文件:很多。我可以使用 SAS 轻松转换这些文件,但这次我更喜欢“go pythonic”。
现在,我似乎找不到让 Python (2.7) 理解四重管道是实际分隔符的方法。以下代码的输出:
import pandas as pd
with open('C:/Users/myname.mysurname/Desktop/my_twitter_flow_1.txt') as theInFile:
inTbl = pd.read_table(theInFile, engine='python', sep='||||', header=1)
print inTbl.head()
似乎表明 Python 不会将不同的字段视为不同的,而是简单地引入前 5 行中的每一行,直到换行符,忽略 ||||分隔器。
基本上,我得到的输出与我上面写的一样,用于向您展示数据结构。
有什么提示吗?
【问题讨论】:
-
顺便说一句:如果你是 Python 新手,你可能不应该从像 2.7 这样过时的版本开始。