python拆分_python文件拆分与重组实例

文件拆分代码:

#-*-encoding:utf-8-*-

import os

import sys

import threading

def getFileSize(file):

file.seek(0, os.SEEK_END)

fileLength = file.tell()

file.seek(0, 0)

return fileLength

def divideFile():

fileFullPath = r"%s" % raw_input("File path: ").strip("\"")

divideTotalPartsCount = int(raw_input("How many parts do you like to divide?: "))

if os.path.exists(fileFullPath):

file = open(fileFullPath, 'rb')

fileSize = getFileSize(file)

file.close()

# send file content

for i in range(divideTotalPartsCount):

filePartSender = threading.Thread(target=seperateFilePart, args=(fileFullPath, divideTotalPartsCount, i+1, fileSize))

filePartSender.start()

for i in range(divideTotalPartsCount):

sem.acquire()

os.remove(fileFullPath)

else:

print "File doesn't exist"

def seperateFilePart(fileFullPath, divideTotalPartsCount, threadIndex, fileSize):

try:

# calculate start position and end position

filePartSize = fileSize / divideTotalPartsCount

startPosition = filePartSize * (threadIndex - 1)

#print "Thread : %d, startPosition: %d" % (threadIndex, startPosition)

endPosition = filePartSize * threadIndex - 1

if threadIndex == divideTotalPartsCount:

endPosition = fileSize - 1

filePartSize = fileSize - startPosition

file = open(fileFullPath, "rb")

file.seek(startPosition)

filePartName = fileFullPath + ".part" + str(threadIndex)

filePart = open(filePartName, "wb")

lengthWritten = 0

while lengthWritten < filePartSize:

bufLen = 1024

lengthLeft = filePartSize - lengthWritten

if lengthLeft < 1024:

bufLen = lengthLeft

buf = file.read(bufLen)

filePart.write(buf)

lengthWritten += len(buf)

filePart.close()

file.close()

sem.release()

print "Part %d finished, size %d" % (threadIndex, filePartSize)

except Exception, e:

print e

sem = threading.Semaphore(0)

while True:

divideFile()

文件重组代码:

#-*-encoding:utf-8-*-

import os

def getFileSize(file):

file.seek(0, os.SEEK_END)

fileLength = file.tell()

file.seek(0, 0)

return fileLength

def rebuildFile():

fileFullPath = r"%s" % raw_input("File base path: ").strip("\"")

divideTotalPartsCount = int(raw_input("How many parts have you divided?: "))

file = open(fileFullPath, "wb")

for i in range(divideTotalPartsCount):

filePartName = fileFullPath + ".part" + str(i+1)

filePart = open(filePartName, "rb")

filePartSize = getFileSize(filePart)

lengthWritten = 0

while lengthWritten < filePartSize:

bufLen = 1024

buf = filePart.read(bufLen)

file.write(buf)

lengthWritten += len(buf)

filePart.close()

os.remove(filePartName)

file.close()

while True:

rebuildFile()

拆分文件演示:

源文件:

20181210092758.jpg

拆分:

20181210092901.jpg

拆分后文件:

20181210092810.jpg

重组文件:

20181210092818.jpg

重组后文件:

20181210092827.jpg

以上这篇python文件拆分与重组实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的逻辑回归分类的 Python 实例。 首先,我们需要导入必要的库和数据集。在这个例子中,我们使用了 scikit-learn 库中的鸢尾花数据集。 ```python from sklearn import datasets import numpy as np # 导入鸢尾花数据集 iris = datasets.load_iris() # 只使用前两个特征:花萼长度和花萼宽度 X = iris.data[:, :2] y = (iris.target != 0) * 1 ``` 接下来,我们将数据集拆分为训练集和测试集。 ```python # 将数据集拆分为训练集和测试集 train_X, train_y = X[:80], y[:80] test_X, test_y = X[80:], y[80:] ``` 然后,我们可以使用 scikit-learn 库中的 LogisticRegression 类来建立逻辑回归模型。 ```python from sklearn.linear_model import LogisticRegression # 创建一个逻辑回归模型 clf = LogisticRegression() # 在训练集上拟合模型 clf.fit(train_X, train_y) ``` 接着,我们可以使用训练好的模型来进行预测。 ```python # 在测试集上进行预测 pred_y = clf.predict(test_X) ``` 最后,我们可以使用 scikit-learn 库中的 metrics 模块来评估模型的性能。 ```python from sklearn import metrics # 计算模型的准确率、精度和召回率 print("Accuracy:", metrics.accuracy_score(test_y, pred_y)) print("Precision:", metrics.precision_score(test_y, pred_y)) print("Recall:", metrics.recall_score(test_y, pred_y)) ``` 完整代码如下: ```python from sklearn import datasets from sklearn.linear_model import LogisticRegression from sklearn import metrics import numpy as np # 导入鸢尾花数据集 iris = datasets.load_iris() # 只使用前两个特征:花萼长度和花萼宽度 X = iris.data[:, :2] y = (iris.target != 0) * 1 # 将数据集拆分为训练集和测试集 train_X, train_y = X[:80], y[:80] test_X, test_y = X[80:], y[80:] # 创建一个逻辑回归模型 clf = LogisticRegression() # 在训练集上拟合模型 clf.fit(train_X, train_y) # 在测试集上进行预测 pred_y = clf.predict(test_X) # 计算模型的准确率、精度和召回率 print("Accuracy:", metrics.accuracy_score(test_y, pred_y)) print("Precision:", metrics.precision_score(test_y, pred_y)) print("Recall:", metrics.recall_score(test_y, pred_y)) ``` 这就是一个简单的逻辑回归分类的 Python 实例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值