为什么我的GTFS数据包含“隐形”换行符?

时间:2015-08-21 13:32:52

标签: csv notepad gtfs

所以我一直在寻找一种方法将GTFS数据导入到我的应用程序的SQLdb中。我在manual找到了一个解决方案。

但是,这是使用python编写的。我不认为我可以直接在我的Windows应用程序中使用它。如果我在这里错了,请纠正我。

但是我对理解解决方案背后的逻辑和创建自己的“解析器”没有任何问题。

因此,我在记事本上打开了GTFS数据文件“calendar dates.txt”,发现其内容令人困惑。它就像:

service_id,date,exception_type1,20151012,11,20151111,12,20150822,12,20150829,12.....

当没有换行符时,你会发现它很混乱。 但是我在这里粘贴代码向你展示它们,它会自动格式化为:

{{1}}

现在它显然有道理! (解析之间有空格)..

但我不明白。记事本显示错了吗?为了编写自己的解析器,如何“正确”地查看数据呢?

2 个答案:

答案 0 :(得分:1)

您的GTFS数据很可能是使用UNIX行尾字符(仅限换行符)而不是MS-DOS / Windows字符(回车符后跟换行符号)编写的。这是permitted by the GTFS spec,其中说:

  

每一行必须以CRLF或LF换行符结尾。

大多数可用于Windows的应用程序软件(包括记事本)仅识别Windows行尾字符,打开在UNIX上创建的文件会将整个内容显示为单行,如您所见。但是,像Notepad ++这样适用于开发人员的工具,以及大多数编程库(例如那些用于解析CSV文件的编程库)通常都足够智能,可以识别这两种格式并适当地处理它们。

如果您有兴趣,维基百科可以提供有关end-of-line representations across operating systems的更多信息。

最后,我会提到我最近发布了Github my own GTFS-to-SQLite loading tool,它是用C语言编写的,并使用libcsv来解析GTFS数据。如果您使用的语言低于Python,您可能会发现它很有用。

答案 1 :(得分:0)

首先复制相关的GTFS(路线,shaps等),然后粘贴在在线文本编辑器中(例如:http://www.editpad.org/

然后从此在线文本编辑器复制并再次粘贴到原始.txt。