Python论坛  - 讨论区

标题:[python-chinese] CPython 中有没有办法重定义 EOF

2007年11月02日 星期五 15:01

jack blackjacksg在gmail.com
星期五 十一月 2 15:01:05 HKT 2007

我也遇到了同样的麻烦,现在在windows下面分析一个文本文件,但是这个文本文件的分行是以'\n\r'的,而且这个文件200-300M左右,所以老是出现错误,请问用什么样的办法能够解决这个问题。谢谢!!!!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/67e3b8cb/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 15:11

Yingbo Qiu qiuyingbo在gmail.com
星期五 十一月 2 15:11:09 HKT 2007

file 对象的 attribute 里面有一个 newlines

If Python was built with the --with-universal-newlines option to
configure (the default) this read-only attribute exists, and for files
opened in universal newline read mode it keeps track of the types of
newlines encountered while reading the file. The values it can take
are '\r', '\n', '\r\n', None (unknown, no newlines read yet) or a
tuple containing all the newline types seen, to indicate that multiple
newline conventions were encountered. For files not opened in
universal newline read mode the value of this attribute will be None.

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 15:51

jack blackjacksg在gmail.com
星期五 十一月 2 15:51:07 HKT 2007

我要设置这个文本文件的换行标志为'\n\r'啊,但是这个newlines属性是只读的,设置不了啊。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/79402ae3/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 16:32

Yingbo Qiu qiuyingbo在gmail.com
星期五 十一月 2 16:32:04 HKT 2007

hack and rebuild python

:)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 16:54

Andelf andelf在gmail.com
星期五 十一月 2 16:54:04 HKT 2007

On 11/2/07, jack <blackjacksg at gmail.com> wrote:
>
> 我要设置这个文本文件的换行标志为'\n\r'啊,但是这个newlines属性是只读的,设置不了啊。


使用  u 模式打开文件
加入通用换行符支持
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/f077edac/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 17:07

jack blackjacksg在gmail.com
星期五 十一月 2 17:07:29 HKT 2007

那个文本文件的换行格式是'\n\r'而不是'\r\n'的标准windows格式
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/4d00f8a7/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 17:10

Leo Jay python.leojay在gmail.com
星期五 十一月 2 17:10:30 HKT 2007

On 11/2/07, jack <blackjacksg在gmail.com> wrote:
> 那个文本文件的换行格式是'\n\r'而不是'\r\n'的标准windows格式
>

其实你的文件也不大,要不全部全部读出来,然后split算了。

-- 
Best Regards,
Leo Jay

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 17:21

jack blackjacksg在gmail.com
星期五 十一月 2 17:21:00 HKT 2007

有300M左右呢。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/bbea68de/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 17:26

@@ askfor在gmail.com
星期五 十一月 2 17:26:30 HKT 2007

Èç¹û²»ÊÇÀÏÓÐÕâÑùµÄÎļþÒª´¦Àí¡£ ¾ÍËã300mÒ²¾Í´¦ÀíÒ»´Î

On 11/2/07, jack <blackjacksg在gmail.com> wrote:
>
> ÓÐ300M×óÓÒÄØ¡£
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/5ef41250/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 17:56

Leo Jay python.leojay在gmail.com
星期五 十一月 2 17:56:38 HKT 2007

On 11/2/07, jack <blackjacksg在gmail.com> wrote:
> 有300M左右呢。
>

那你可以
1. 一次load个10MB出来
2. split字符串,如果得到n个元素的话,处理前n-1个,
3. 读下一个10MB,放到之前的第n个字符串后面
4. 回到第2步。



-- 
Best Regards,
Leo Jay

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 22:07

John fractal johnfractal在gmail.com
星期五 十一月 2 22:07:05 HKT 2007

用mmap,效率更高。
mmap有个find方法,查找"\n\r"就知道一行的结尾。

在07-11-2,Leo Jay <python.leojay在gmail.com> 写道:
>
> On 11/2/07, jack <blackjacksg在gmail.com> wrote:
> > 有300M左右呢。
> >
>
> 那你可以
> 1. 一次load个10MB出来
> 2. split字符串,如果得到n个元素的话,处理前n-1个,
> 3. 读下一个10MB,放到之前的第n个字符串后面
> 4. 回到第2步。
>
>
>
> --
> Best Regards,
> Leo Jay
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/5b63a823/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月02日 星期五 22:27

King Cheung python21st在gmail.com
星期五 十一月 2 22:27:23 HKT 2007

ÒªÊÇÎҵĻ°£¬ÎÒ»áÕâÑùÊÔ£º
1.µ¥¸öÎļþ£¬ÓÃvim´ò¿ª£¬ÓÃÕýÔò±í´ïʽ¸ã£¬ºÜ·½±ã£¬¶øÇÒ300MµÄÎı¾²»Ëã´ó¡£
2.»òÕß¾Ícygwin£¬ÓÃgrep£¬sed»òÕßawk£¬Ôٸ㡣

ÎÒ֮ǰдperlÒ²Óöµ½ÀàËÆÎÊÌ⣬²»¹ýÎÒÊÇÓöþ½øÖÆÁ÷¶Á½øÀ´£¬ÔÚ°´¶þ½øÖÆÂ˵ôµÄ¡£¸Ð¾õperl¶ÔÎļþ±àÂëÖ§³Ö²»ºÃ¡£
-- 
python!
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071102/6fe8ca52/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年11月05日 星期一 11:29

jack blackjacksg在gmail.com
星期一 十一月 5 11:29:53 HKT 2007

非常感谢回复的几位,问题最终解决了,我采用的是mmap的find办法。效率也非常的高。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20071105/e7581f82/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号