Python论坛  - 讨论区

标题:[python-chinese] ´ÓÎı¾¶ÁÈëÊý¾ÝµÄ¸ñʽÎÊÌâÇó½Ì

2005年09月15日 星期四 04:10

Leon Tang leonmaillist at sohu.com
Thu Sep 15 04:10:42 HKT 2005

data.txt

                        X              s11              s12              s22

          0.00000000E+000  6.04698870E+010  -5.32921631E+010 
9.52406671E+010
          0.00000000E+000          NoValue  6.09591665E+010          NoValue
          0.00000000E+000          NoValue  -2.99157750E+010 
NoValue
          0.00000000E+000          NoValue  3.67781274E+010          NoValue
          4.88667341E-004  3.86049147E+010  6.78774682E+009  3.21935503E+010
          9.40300233E-004  2.70205092E+010  3.81452723E+009  3.04842240E+010

ÈçºÎ´Ódata.txt¶ÁÈëÕâЩÊý¾Ý
ʹ֮³ÉΪÊý¾ÝÁбídata
ʹµÃdataµÄÐкÍÁÐÓëÔ­À´Êý¾Ý±£³ÖÒ»Öµĸñʽ
thanks





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

2005年09月15日 星期四 09:22

limodou limodou at gmail.com
Thu Sep 15 09:22:31 HKT 2005

在 05-9-15,Leon Tang<leonmaillist at sohu.com> 写道:
> data.txt
> 
>                         X              s11              s12              s22
> 
>           0.00000000E+000  6.04698870E+010  -5.32921631E+010
> 9.52406671E+010
>           0.00000000E+000          NoValue  6.09591665E+010          NoValue
>           0.00000000E+000          NoValue  -2.99157750E+010
> NoValue
>           0.00000000E+000          NoValue  3.67781274E+010          NoValue
>           4.88667341E-004  3.86049147E+010  6.78774682E+009  3.21935503E+010
>           9.40300233E-004  2.70205092E+010  3.81452723E+009  3.04842240E+010
> 
> 如何从data.txt读入这些数据
> 使之成为数据列表data

读入数据很简单,从上面可以看出一行就是一条记录,每条记录的字段以空白符分隔,因此可以这样:

data = []
for line in file('data.txt'):
    line = line.strip()  #过滤前后的空格和回车
    data.append(line.split())  #使用字符串的split方法,按空白进行拆分

这样数据就读出来了。

> 使得data的行和列与原来数据保持一致的格式
> thanks
> 

这个就不太明白你的意思了。


-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou

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

2005年09月15日 星期四 09:36

Leon Tang leonmaillist at sohu.com
Thu Sep 15 09:36:38 HKT 2005

呵呵,谢谢你
我用line.split()
一开始没注意到split可以缺省无参数的,开始就是用split(' ')结果不好

----- Original Message ----- 
From: "limodou" <limodou at gmail.com>
To: <python-chinese at lists.python.cn>
Sent: Thursday, September 15, 2005 9:22 AM
Subject: Re: [python-chinese] 从文本读入数据的格式问题求教


>在 05-9-15,Leon Tang<leonmaillist at sohu.com> 写道:
>> data.txt
>> 
>>                         X              s11              s12              s22
>> 
>>           0.00000000E+000  6.04698870E+010  -5.32921631E+010
>> 9.52406671E+010
>>           0.00000000E+000          NoValue  6.09591665E+010          NoValue
>>           0.00000000E+000          NoValue  -2.99157750E+010
>> NoValue
>>           0.00000000E+000          NoValue  3.67781274E+010          NoValue
>>           4.88667341E-004  3.86049147E+010  6.78774682E+009  3.21935503E+010
>>           9.40300233E-004  2.70205092E+010  3.81452723E+009  3.04842240E+010
>> 
>> 如何从data.txt读入这些数据
>> 使之成为数据列表data
> 
> 读入数据很简单,从上面可以看出一行就是一条记录,每条记录的字段以空白符分隔,因此可以这样:
> 
> data = []
> for line in file('data.txt'):
>    line = line.strip()  #过滤前后的空格和回车
>    data.append(line.split())  #使用字符串的split方法,按空白进行拆分
> 
> 这样数据就读出来了。
> 
>> 使得data的行和列与原来数据保持一致的格式
>> thanks
>> 
> 
> 这个就不太明白你的意思了。
> 
> 
> -- 
> I like python! 
> My Donews Blog: http://www.donews.net/limodou
>


--------------------------------------------------------------------------------


> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>

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

2005年09月15日 星期四 09:47

Leon Tang leonmaillist at sohu.com
Thu Sep 15 09:47:19 HKT 2005

line.strip()  ÊÇ·ñ±ØÒªÄØ£¿
ÒòΪsplit()Ò²ÊÇ·Ö¸î¿Õ¸ñ£¬¶øÇÒÒ²ÊǹýÂËÁËÇ°ºó¿Õ¸ñµÄ

"limodou" <limodou at gmail.com> дÈëÏûÏ¢ÐÂÎÅ:505f13c0509141822751fa04c at mail.gmail.com...
>ÔÚ 05-9-15£¬Leon Tang<leonmaillist at sohu.com> дµÀ£º
>> data.txt
>>
>>                         X              s11              s12 
>> s22
>>
>>           0.00000000E+000  6.04698870E+010  -5.32921631E+010
>> 9.52406671E+010
>>           0.00000000E+000          NoValue  6.09591665E+010 
>> NoValue
>>           0.00000000E+000          NoValue  -2.99157750E+010
>> NoValue
>>           0.00000000E+000          NoValue  3.67781274E+010 
>> NoValue
>>           4.88667341E-004  3.86049147E+010  6.78774682E+009 
>> 3.21935503E+010
>>           9.40300233E-004  2.70205092E+010  3.81452723E+009 
>> 3.04842240E+010
>>
>> ÈçºÎ´Ódata.txt¶ÁÈëÕâЩÊý¾Ý
>> ʹ֮³ÉΪÊý¾ÝÁбídata
>
> ¶ÁÈëÊý¾ÝºÜ¼òµ¥£¬´ÓÉÏÃæ¿ÉÒÔ¿´³öÒ»ÐоÍÊÇÒ»Ìõ¼Ç¼£¬Ã¿Ìõ¼Ç¼µÄ×Ö¶ÎÒÔ¿Õ°×·û·Ö¸ô£¬Òò´Ë¿ÉÒÔÕâÑù£º
>
> data = []
> for line in file('data.txt'):
>    line = line.strip()  #¹ýÂËÇ°ºóµÄ¿Õ¸ñºÍ»Ø³µ
>    data.append(line.split())  #ʹÓÃ×Ö·û´®µÄsplit·½·¨£¬°´¿Õ°×½øÐвð·Ö
>
> ÕâÑùÊý¾Ý¾Í¶Á³öÀ´ÁË¡£
>
>> ʹµÃdataµÄÐкÍÁÐÓëÔ­À´Êý¾Ý±£³ÖÒ»Öµĸñʽ
>> thanks
>>
>
> Õâ¸ö¾Í²»Ì«Ã÷°×ÄãµÄÒâ˼ÁË¡£
>
>
> -- 
> I like python!
> My Donews Blog: http://www.donews.net/limodou
>


--------------------------------------------------------------------------------


> 




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

2005年09月15日 星期四 09:52

limodou limodou at gmail.com
Thu Sep 15 09:52:37 HKT 2005

在 05-9-15,Leon Tang<leonmaillist at sohu.com> 写道:
> line.strip()  是否必要呢?
> 因为split()也是分割空格,而且也是过滤了前后空格的
> 

可以测试一下,如果不会在最后多一个空串就可以不用。这样只是一种保险的做法。

-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号