此篇文章共收到打赏0
发信人: capry (IA), 信区: Programming 标 题: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 14:01:52 2021, 美东) 最近需要自动读入一系列的csv file 进入word 文档,所以在学习python csv module, 做了以下小练习: 目的是读入 csv file, 计算column number, 然后输出每一行的第二列 具体code 和 输出如下: >>> import csv >>> with open('test.1.csv','r') as infile: ... text=csv.reader(infile,delimiter=',', quotechar='|') ... fields=len(list(text)[0]) ... print fields ... for row in text: ... print row[1] ... 5 这里的5 是column number (fields), 但是我不理解为什么row 的output 没有出来 ??? 如果我delete 跟fields相关的code,会得到row的output: >>> with open('test.1.csv','r') as infile: ... text=csv.reader(infile,delimiter=',', quotechar='|') ... for row in text: ... print row[1] ... year year2021 year10 难道我需要两次open file吗? 多谢! -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 216.]
发信人: fantasist (一), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 18:14:55 2021, 美东) 多按一次回车试试? 最好在jupyter notebook里写这种adhoc脚本,有神器别不用。不推荐直接在cmd line 里打代码。 -- ☆ 发自 iPhone 买买提 1.24.11 -- ※ 修改:·fantasist 於 Jan 9 18:15:57 2021 修改本文·[FROM: 2600:1700:4384:4] ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2600:1700:4384:]
发信人: guvest (我爱你老婆Anna), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 18:32:19 2021, 美东) 他这print 看着是python 2。 现在都应该学python 3吧。 【 在 fantasist(一) 的大作中提到: 】 <br>: 多按一次回车试试? <br>: 最好在jupyter notebook里写这种adhoc脚本,有神器别不用。不推荐直接在cmd line <br>: 里打代码。 <br> -- ※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]
发信人: lightroom (吃一条鱼,思考一个问题,法号三丰), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 20:04:30 2021, 美东) 你的有len那行,把text的generator跑了一次清光了。 【在 capry(IA)的大作中提到:】 :最近需要自动读入一系列的csv file 进入word 文档,所以在学习python csv module, 做了以下小练习: : -- ※ 来源:·Android 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2604:ca00:100:6]
发信人: guvest (我爱你老婆Anna), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 20:33:16 2021, 美东) list清的?我也觉得这里有问题。不过不知道list有这个效果。 【 在 lightroom(吃一条鱼,思考一个问题,法号三丰) 的大作中提到: 】 <br>: 你的有len那行,把text的generator跑了一次清光了。 <br>: :最近需要自动读入一系列的csv file 进入word 文档,所以在学习python csv <br>: module, 做了以下小练习: <br>: : <br> -- ※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]
发信人: sanwadie (三娃爹), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 22:01:34 2021, 美东) python就是这样,功能很fancy,副作用很无语。这种情况,还不如自己写几行代码 【 在 guvest (我爱你老婆Anna) 的大作中提到: 】 : list清的?我也觉得这里有问题。不过不知道list有这个效果。 : <br>: 你的有len那行,把text的generator跑了一次清光了。 : <br>: :最近需要自动读入一系列的csv file 进入word 文档,所以在学习python csv : <br>: module, 做了以下小练习: : <br>: : : <br> -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 198.]
发信人: guvest (我爱你老婆Anna), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 22:57:35 2021, 美东) 有经验了你会感觉到哪些语法risky,自动就不会那么写了。c和Cpp也都一样。时间长 了不会对语法有多少印象。 【 在 sanwadie(三娃爹) 的大作中提到: 】 <br>: python就是这样,功能很fancy,副作用很无语。这种情况,还不如自己 写几行 代码 <br>: csv <br> -- ※ 修改:·guvest 於 Jan 9 23:13:36 2021 修改本文·[FROM: 72.] ※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]
发信人: sanwadie (三娃爹), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 23:13:41 2021, 美东) 仔细想了一下,好像如你所说。不光是语法,还有那些核心库。又想起那个著名的 c printf 。 【 在 guvest (我爱你老婆Anna) 的大作中提到: 】 : 有经验了你会感觉到哪些语法risky,自动就不会那么写了。c和Cpp也都一样。 : <br>: python就是这样,功能很fancy,副作用很无语。这种情况,还不如自己 : 写几行 : 代码 : <br>: csv : <br> -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 198.]
发信人: fantasist (一), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sat Jan 9 23:15:53 2021, 美东) 还是你看的仔细。我还以为这个csv reader类似于file.readlines() 【 在 lightroom (吃一条鱼,思考一个问题,法号三丰) 的大作中提到: 】 : 你的有len那行,把text的generator跑了一次清光了。 : :最近需要自动读入一系列的csv file 进入word 文档,所以在学习python csv : module, 做了以下小练习: : : -- ☆ 发自 iPhone 买买提 1.24.11 -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2600:1700:4384:]
发信人: chebyshev (......), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 03:43:13 2021, 美东) python的list刚开始看巨牛无比。后来看,list能造出来的语法糖,数不胜数。 除非只用python一种的,我觉得没法深入钻研。我都是绕着走,能用numpy array就用 numpy。 【 在 sanwadie (三娃爹) 的大作中提到: 】 : 仔细想了一下,好像如你所说。不光是语法,还有那些核心库。又想起那个著名的 c : printf 。 -- ※ 修改:·chebyshev 於 Jan 10 03:44:00 2021 修改本文·[FROM: 72.] ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]
发信人: modsys (魔德西), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 09:03:06 2021, 美东) 为什么不用pandas read_csv ?好用的多啊 【 在 capry (IA) 的大作中提到: 】 : 最近需要自动读入一系列的csv file 进入word 文档,所以在学习python csv module, : 做了以下小练习: : 目的是读入 csv file, 计算column number, 然后输出每一行的第二列 : 具体code 和 输出如下: : >>> import csv : >>> with open('test.1.csv','r') as infile: : ... text=csv.reader(infile,delimiter=',', quotechar='|') : ... fields=len(list(text)[0]) : ... print fields : ... for row in text: : ................... -- ☆ 发自 iPhone 买买提 1.24.11 -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 73.]
发信人: staftermath (彦清风), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 13:50:12 2021, 美东) +1 大多数情况下能解决问题。 看起来楼主像是新用户,先试试read_csv也无妨。 遇到坑了再考虑高阶的就行。 【 在 modsys (魔德西) 的大作中提到: 】 : 为什么不用pandas read_csv ?好用的多啊 : module, -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 73.]
发信人: capry (IA), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 13:58:07 2021, 美东) 没太明白这个“generator” 的概念。能再多解释下吗? 的确是python新手,对着Google照猫画虎阶段。。。 【 在 lightroom (吃一条鱼,思考一个问题,法号三丰) 的大作中提到: 】 : 你的有len那行,把text的generator跑了一次清光了。 : :最近需要自动读入一系列的csv file 进入word 文档,所以在学习python csv : module, 做了以下小练习: : : -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 216.]
发信人: capry (IA), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 13:59:10 2021, 美东) 谢谢推荐。。。 【 在 modsys (魔德西) 的大作中提到: 】 : 为什么不用pandas read_csv ?好用的多啊 : module, -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 216.]
发信人: chebyshev (......), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 14:56:09 2021, 美东) def gen(N): for i in range(N): print("counter=",i) yield i g1 = gen(6) 这个generator g1包括六个位置,就是那个i 。 next(g1)会返回不同调用时候的i。 关键在于,gen这个函数在其内部,知道它被调用了几次。 但是你用了list(g1), 然后next(g1)会报StopIteration。这个信息就没了。 list的这个作用我也是才知道。 你试着用别的办法,实现一下一个函数内部知道它被调用了几次, 然后print这个次数,可能就理解了。 有了内部可以知道自己被调用多少次的函数,理论上可以用来消除所有的for loop。 这是个数学定理。(我忘了)好象是编译技术早期的一个什么标准型。 【 在 capry (IA) 的大作中提到: 】 : 没太明白这个“generator” 的概念。能再多解释下吗? : 的确是python新手,对着Google照猫画虎阶段。。。 -- ※ 修改:·chebyshev 於 Jan 10 15:01:46 2021 修改本文·[FROM: 72.] ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]
发信人: NGale (马氏若姆), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 18:39:20 2021, 美东) 同推荐pandas的read_csv,还有适用范围更广的read_table。CSV文件格式太灵活:有 的有quote,有的quote可以省略,有的用逗号,有的不用(虽然CSV定义是用逗号)。 自己写parser会被折腾死。 yield是为了方便地使用function构造Iterator,就是个语法糖。因为function本身没 有状态变量,不能根据调用次数逐个返回数值,所以就有了yield。在function中使用 yield,调用该function时会返回一个Iterator(generator也是Iterator),这个 Iterator的内部已经根据你的function定义构造好了。其实你完全可以自己写一个 Iterator class。 -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 67.]
发信人: guvest (我爱你老婆Anna), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 20:14:35 2021, 美东) List 清generator,其design motivation 是什麼。 【 在 NGale(马氏若姆) 的大作中提到: 】 <br>: 同推荐pandas的read_csv,还有适用范围更广的read_table。CSV文件格式太灵 活:有 <br>: 的有quote,有的quote可以省略,有的用逗号,有的不用(虽然CSV定义是用逗 号)。 <br>: 自己写parser会被折腾死。 <br>: yield是为了方便地使用function构造Iterator,就是个语法糖。因为function 本身没 <br>: 有状态变量,不能根据调用次数逐个返回数值,所以就有了yield。在function 中使用 <br>: yield,调用该function时会返回一个Iterator(generator也是Iterator),这个 <br>: Iterator的内部已经根据你的function定义构造好了。其实你完全可以自己写一个 <br>: Iterator class。 <br> -- ※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]
发信人: fantasist (一), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 20:36:39 2021, 美东) 看文档就知道了。这个reader是一个定义了__next__的object,其实跟文件的readline 差不多,但没有提供reset的功能。list从头next到尾,这个reader就停在最终的状态 了。 【 在 guvest (我爱你老婆Anna) 的大作中提到: 】 : List 清generator,其design motivation 是什麼。 : : 同推荐pandas的read_csv,还有适用范围更广的read_table。CSV文件格式太灵 : 活:有 : : 的有quote,有的quote可以省略,有的用逗号,有的不用(虽然CSV定义是用逗 : 号)。 : : 自己写parser会被折腾死。 : : yield是为了方便地使用function构造Iterator,就是个语法糖。因为function : 本身没 : : 有状态变量,不能根据调用次数逐个返回数值,所以就有了yield。在function : 中使用 : ................... -- ☆ 发自 iPhone 买买提 1.24.11 -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2600:1700:4384:]
发信人: guvest (我爱你老婆Anna), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 20:44:33 2021, 美东) 我的问题不是其原理。想知道为何如此设计。取舍怎么考虑的。 【 在 fantasist(一) 的大作中提到: 】 <br>: 看文档就知道了。这个reader是一个定义了__next__的object,其实跟文 件的 readline <br>: 差不多,但没有提供reset的功能。list从头next到尾,这个reader就停 在最终 的状态 <br>: 了。 <br> -- ※ 修改:·guvest 於 Jan 10 20:44:58 2021 修改本文·[FROM: 72.] ※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]
发信人: staftermath (彦清风), 信区: Programming 标 题: Re: python code help: 读入csv file的bug 发信站: BBS 未名空间站 (Sun Jan 10 22:39:50 2021, 美东) 这跟list的design motivation 没关系, list设计就是从iterable构建列表,做法就是过一遍iterable。 generator是一种iterable,然而只能过一遍。所以list完了之后就关闭了。 【 在 guvest (我爱你老婆Anna) 的大作中提到: 】 : List 清generator,其design motivation 是什麼。 : <br>: 同推荐pandas的read_csv,还有适用范围更广的read_table。CSV文件格式太灵 : 活:有 : <br>: 的有quote,有的quote可以省略,有的用逗号,有的不用(虽然CSV定义是用逗 : 号)。 : <br>: 自己写parser会被折腾死。 : <br>: yield是为了方便地使用function构造Iterator,就是个语法糖。因为 function : 本身没 : <br>: 有状态变量,不能根据调用次数逐个返回数值,所以就有了yield。在 function : 中使用 : ................... -- ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 73.]
Site Map - Contact Us - Terms and Conditions - Privacy Policy 版权所有,未名空间(mitbbs.com),since 1996