Python按行分割大文件txt/res等
有勇气的牛排
464
Python
2023-05-18 21:03:37
在用单脚本处理大文件时,可能会遇到各种问题,故需要将文件切分为小文件来操作
wdata = []
count = 0
with open('E:/xxx/xxx/xxx.txt', 'r', encoding='utf8') as f:
d = f.readline()
while d:
if count%500000==0:
print(count)
with open("file_" + str(count) + ".res", 'w+',encoding='utf-8') as f_target:
for mydata in wdata:
f_target.write(mydata)
wdata = []
count+=1
wdata.append(d)
d = f.readline()
参考地址:
https://blog.csdn.net/GrandpaTong/article/details/108346941
<blockquote>
<p>在用单脚本处理大文件时,可能会遇到各种问题,故需要将文件切分为小文件来操作</p>
</blockquote>
<pre><div class="hljs"><code class="lang-python"><span class="hljs-comment"># 每 50 0000 行拆成一个文件</span>
wdata = []
count = <span class="hljs-number">0</span>
<span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">'E:/xxx/xxx/xxx.txt'</span>, <span class="hljs-string">'r'</span>, encoding=<span class="hljs-string">'utf8'</span>) <span class="hljs-keyword">as</span> f:
d = f.readline()
<span class="hljs-keyword">while</span> d:
<span class="hljs-keyword">if</span> count%<span class="hljs-number">500000</span>==<span class="hljs-number">0</span>:
<span class="hljs-built_in">print</span>(count)
<span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">"file_"</span> + <span class="hljs-built_in">str</span>(count) + <span class="hljs-string">".res"</span>, <span class="hljs-string">'w+'</span>,encoding=<span class="hljs-string">'utf-8'</span>) <span class="hljs-keyword">as</span> f_target:
<span class="hljs-keyword">for</span> mydata <span class="hljs-keyword">in</span> wdata:
f_target.write(mydata)
wdata = []
count+=<span class="hljs-number">1</span>
wdata.append(d)
d = f.readline()
</code></div></pre>
<p>参考地址:<br />
https://blog.csdn.net/GrandpaTong/article/details/108346941</p>
留言