Python中文
首页
教程
问答
标签
搜索
登录
注册
如果我需要行数并且需要附加到文件中,我可以避免处理一个文件两次吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在分阶段将文件写入磁盘。当我写它的时候,我需要知道我正在写的用来建立索引的行号。文件现在有1200万行,所以我需要动态地建立索引。我分四个步骤来完成这项工作,其中有四组我正在索引的值。基于我在其他地方找到的一些例子,所以我决定在开始编写之前获取文件的行大小,这样我就可以使用这个计数来继续构建索引,以保持函数尽可能干净。在</p> <p>所以我遇到了这个问题,理论上我不知道是将第一个块还是最后一个块添加到我的文件中,所以我想获得当前的大小</p> <pre><code>myFile=open(r'C:\NEWMASTERLIST\FULLLIST.txt','a') try: num_lines=sum(1 for line in myFile) except IOError: num_lines=0 </code></pre> <p>当我这样做时,结果总是0—即使myFile存在并且有一个num\u lines>;0</p> <p>如果我改为这样做:</p> ^{pr2}$ <p>如果myFile存在,我得到正确的值。如果我的文件不存在,如果我在第一个周期,我会得到一个错误消息。在</p> <p>在我写这个问题的时候,我突然想到,在每个文件存在的情况下,num_lines=0的原因是因为文件正在被打开以附加到,所以文件在最后一行被打开,现在正在等待行被传递。所以这就解决了问题</p> <pre><code>try: myFile=open(r'C:\NEWMASTERLIST\FULLLIST.txt') num_lines=sum(1 for line in myFile) except IOError: num_lines=0 </code></pre> <p>我的问题是这是否可以用另一种方式来做。我要求的原因是我现在必须关闭我的文件并重新打开它以附加:</p> <p>这就是我现在要做的工作,我有了文件中已经存在的数据的结束索引号</p> <pre><code>myFile.close() myFile=open(r'C:\NEWMASTERLIST\FULLLIST.txt','a') </code></pre> <p>现在,我可能在这里学到了一些东西-如果我必须打开文件两次,那么可能应该将获取起始索引(num_lines)移到函数中</p> <pre><code>def getNumbLines(myFileRef): try: myFile=open(myFileRef) num_lines=sum(1 for line in myFile) myFile.close() except IOError: num_lines=0 return num_lines </code></pre> <p>如果我不必打开/处理文件两次,那会更干净。在</p> <p>根据埃里克·温德林的回答,我可以:</p> <pre><code>myFile=open(r'C:\NEWMASTERLIST\FULLLIST.txt','a+') num_lines=sum(1 for line in myFile) </code></pre> <p>谢谢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我假设你正在写这个文件,那么为什么不单独记录你已经写了多少行呢? 在我看来,为了得到行号而不得不逐行阅读整个文件,这看起来非常浪费。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
3 回答
我想从用户导入值,为此
1 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
7 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
8 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
9 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
6 回答
我想从第一个空lin开始解析文本文件
5 回答
我想从简历、简历中提取特定部分
8 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
10 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
9 回答
我想从网上搜集一些关于抵押贷款的数据
3 回答
我想从网站上删除电子邮件地址
8 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
6 回答
我想从网站中提取数据,然后将其显示在我的网页上
8 回答
我想从网页上提取统计数据。
9 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
5 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
9 回答
我想从课堂上打印字典里的键
3 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
9 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
10 回答