擅长:python、mysql、java
<p>问题中的代码似乎专注于生成一组块,而不是50MB大小的文件。你知道吗</p>
<p>此代码生成50MB文件。你知道吗</p>
<pre><code>import os
try:
f = open('big.txt', 'rb')
except (OSError, IOError), e:
raise FileSplitterException, str(e)
bname = (os.path.split('big.txt'))[1]
chunksz = 50 * 1000 * 1000 # metric MB - use 1024 * 1024 for binary MB (MiB)
counter = 0
while True:
chunkfilename = bname + '-' + str(counter+1) + '.foo'
try:
print 'Writing file',chunkfilename
data = f.read(chunksz)
if not data:
# We have reached the end of the file, end the script.
break
chunkf = file(chunkfilename, 'wb')
chunkf.write(data)
chunkf.close()
except (OSError, IOError), e:
print e
continue
except EOFError, e:
print e
break
counter += 1
</code></pre>
<p>在现代python中,代码的某些方面被认为是糟糕的风格——例如不使用上下文管理器来打开文件——但我没有更改这些内容,以防OP在旧的python(如2.5)上运行。你知道吗</p>