Python按行分割大文件txt/res等
        
                
                    
                    有勇气的牛排
                
            
                    
                    761
                
            
                    
                    
                    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>
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
            
                
                
                
            
        
    
    
    
 
评论区