mac如何通过python将大批excel数据导入mysql

Python08

mac如何通过python将大批excel数据导入mysql,第1张

通过python将大批excel数据导入mysql:

利用Python从EXCEL中读取两列数据存储在LIST中然后连接数据库利用insert语句和LIST 内容结合,导入数据库;然后再从数据库读取表的字段和内容,存放到EXCEL新表中即可。

以下的导入的核心代码:

#按照说明安装即可

import win32com.client as win32

import MySQLdb

app='Excel'

#启动EXCEL程序

xl=win32.gencache.EnsureDispatch('%s.Application' % app)

#打开相应的EXCEL文件

xlbook=win32.Dispatch('Excel.Application').Workbooks.Open('D:\\pyd\\opsdata.xls')

#读取EXCEL工具表,打开要导入数据的表

sh=xlbook.Worksheets('sheet2')

#建立一个空LIST和两个循环参数

dfun=[]

jcount=2

ncount=1

#从第一列开始向下循环,找到为空的那一行返回行数,即为第ncount行为空

for ncount in range(1,65566):

    if sh.Cells(ncount,1).Value==None:

        break

    else:

        continue

#print ncount,测试代码,测试ncount值

#EXCEL的数据安排为第一行是字段,第二行开始是数据,故从第2行开始循环,将两列数据合并到一个LIST中

#LIST结构为[('a','b'),('c','d')]

for jcount in range(2,ncount):

    dfun.append((sh.Cells(jcount,1).Value,sh.Cells(jcount,2).Value))

#关闭EXCEL程序

#xl.Application.Quit()

#print dfun,测试代码测试dfun的数据

#建立一个空LIST fo用来存放字段,读取EXCEL中第一行的字段存储到fo中

fo=[]

icount=1

for icount in range(1,2):

    fo.append((sh.Cells(1,icount).Value,sh.Cells(1,icount+1).Value))

#测试代码,print fo

#打开MYSQL链接

conn=MySQLdb.connect(host='localhost',user='root',passwd='0.789asd',db='python')

#获取游标操作

cursor=conn.cursor()

#建立一个空表

cursor.execute("create table test("+fo[0][0]+" varchar(100),"+fo[0][1]+" varchar(100))")

#利用executemany命令,将LIST,dfun中的数据通过insert语句写入数据库

cursor.executemany("""insert into test values(%s,%s)""" ,dfun)

#确认数据操作,注意如果没有conn.commit()这个命令,数据无法被插入到数据库中

conn.commit()

#执行查询检查结果

count = cursor.execute('select * from test') 

print 'has %s record' % count

#重置游标位置

cursor.scroll(0,mode='absolute')

#搜取所有结果

results = cursor.fetchall() 

#测试代码,print results

#获取MYSQL里的数据字段

fields = cursor.description

#将字段写入到EXCEL新表的第一行

sh2=xlbook.Worksheets('sheet3')

#清空sheet3

sh2.Cells.Clear

for ifs in range(1,len(fields)+1):

    sh2.Cells(1,ifs).Value=fields[ifs-1][0]

#将读取的数据填入到相应的行列中

ics=2

jcs=1

for ics in range(2,len(results)+2):

    for jcs in range(1,len(fields)+1):

        sh2.Cells(ics,jcs).Value=results[ics-2][jcs-1]

#关闭EXCEL程序

xl.Application.Quit()

#关闭游标和查询链接

cursor.close()

conn.close()

大家好,又见面了,我是你们的朋友全栈君。

线性代数之矩阵秩的求法

K阶子式的定义

在m×n的矩阵A中,任取k行、k列(k小于等于m、k小于等于n),位于这些行和列交叉处的 个元素,在不改变原有次序的情况下组成的矩阵叫做矩阵A的k阶子式。

不难发现矩阵A有个

个k阶子式。

比如有矩阵A

比如取第1行,第3行,第1列,第4列交叉上的元素组成的子式即为其一个2阶子式。即按照如下划线操作 :

即其中的一个2阶子式是:

矩阵秩的定义

设在m×n的矩阵A中有一个不等于0的r阶子式D,且所有r+1阶子式全等于0,则D是该矩阵的最高阶非零子式。非零子式的最高阶数即叫做矩阵的秩 记作R(A) r是rank的缩写。不难发现矩阵的秩有如下特点:

R(A)大于等于0小于等于min{m,n}。

r(A) = m 取了所有的行,叫行满秩

r(A) = n 取了所有的列,叫列满秩

r(A) <min{m,n}则叫做降秩

A是方阵,A满秩的充要条件是A是可逆的(转换为A的行列式不等于0,所以可逆)

r(A) = r的充要条件是有一个r阶子式不为0,所有r+1阶子式为0

矩阵A(m乘n阶)左乘m阶可逆矩阵P,右乘n阶可逆矩阵Q,或者左右乘可逆矩阵PAQ不改变其秩。

对矩阵实施(行、列)初等变换不改变矩阵的秩

阶梯形矩阵的秩 r(A)等于非零行的行数。

A的秩等于A转置的秩

任意矩阵乘可逆矩阵,秩不变

矩阵秩的求法

定义法

该方法是根据矩阵的秩的定义来求,如果找到k阶子式为0,而k-1阶不为0,那么k-1即该矩阵的秩。

#Sample1(示例一),求下列矩阵的秩:

A=

针对矩阵A,我们先找它的一个3阶子式看看是否为0,比如我们找的是

很显然该三阶子式等于-1≠0,所以该矩阵的秩是3。

因为当前矩阵没有4阶子式子,所以3是该矩阵的最高阶。

#Sample2(示例二):已知矩阵A

,如果R(A)<3,求a。

Step1:这种已知矩阵的秩求参数的题目需要借助秩的定义。因为当前矩阵A是3阶的,而R(A)又小于3,那么A的三阶子式(即A本身)为0。

Step2:可按照行(列)将第2、3行(列)都加到第1行(列)上去,然后提取公因子a+2,

Step3:再以第1行(列)为轴,消除其它行(列)进而得到

Step4:(a+2)

=0 所以a=-2或者a=1。

类似的,#Sample3(示例三)如果如下的矩阵A的秩R(A)等于3那么k等多少呢?

思路:该题的思路跟上例类似,不过这里解出的k(k=1或者k=-3)需要带回原矩阵里核验下,而k=1时R(A)=1和题目的条件冲突,所以k只能为-3。

阶梯型数非零行数

分两步:

第一步先将原矩阵化简成阶梯型矩阵

第二步数新矩阵的非零行行数,该函数即对应原矩阵的秩。

#Sample4(示例四):示例,求如下矩阵A的秩

Step1:第1行的-2倍加到第2行上去、第1行的1倍加到第三行上去,于是得到

Step2:针对上述矩阵,将第2行加到第3行上去,于是得到

Step3:此时我们已经能输出非0行的函数即2,所以矩阵A的秩是2。

阶梯型画台阶

我们可以借助阶梯的图形化方式勾出台阶数,见下图示例#Sample5(示例五):

注:1 画阶梯(台阶下的元素全为0)数台阶,台阶水平方向可跨多列,垂直(列)方向不能跨多行(即一次只能有1个台阶)。

2 该方法本质上属于阶梯型,只是操作时以图形化数台阶的方式。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139199.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

本文分享自作者个人站点/博客

复制

如有侵权,请联系 [email protected] 删除。

展开阅读全文

httpsJava网络安全

文章来自专栏

全栈程序员必看

55.1K 篇文章192 人关注

订阅

评论 (0)

写评论

暂无人发表评论

相关文章

线性代数精华3——矩阵的初等变换与矩阵的秩

矩阵的初等变换这个概念可能在很多人听来有些陌生,但其实我们早在初中的解多元方程组的时候就用过它。只不过在课本当中,这种方法叫做消元法。我们先来看一个课本里的例子...

博客 | MIT—线性代数(上)

在中国不知所以的《线性代数》教材的目录排版下,当前大多数本土毕业生均能熟练使用公式计算行列式或求解线性方程组,却丝毫不能体会线性代数真正内涵的精髓所在。包括我在...

呆在家无聊?何不抓住这个机会好好学习!

本公众号一向坚持的理念是数据分析工具要从基础开始学习,按部就班,才能深入理解并准确利用这些工具。鼠年第一篇原创推送比较长,将从基础的线性代数开始。线性代数大家都...

线性代数知识汇总

线性代数是代数学的一个分支,主要处理线性关系问题。线性关系意即数学对象之间的关系是以一次形式来表达的。例如,在解析几何里,平面上直线的方程是二元一次方程;空间平...

机器学习的数学基础

向量空间一组基中的向量如果两两正交,就称为正交基;若正交基中每个向量都是单位向量,就称其为规范正交基。

机器学习数学基础:线性代数基本定理

本文是《机器学习数学基础》补充资料,更多内容请访问:https://qiwsir.gitee.io/mathmetics/

线性代数--MIT18.06(十)

列空间和零空间我们已经在第六讲讲解过了,在这里我们还将讨论他们所在空间的维数,以及它们自身的维数和构成它们的基。

线性代数--MIT18.06(十)

列空间和零空间我们已经在第六讲讲解过了,在这里我们还将讨论他们所在空间的维数,以及它们自身的维数和构成它们的基。

线代矩阵问题

Python中含有丰富的库提供我们使用,学习数学分支线性代数时,矩阵问题是核心问题。Numpy库通常用于python中执行数值计算,并且对于矩阵操作做了特殊的优...

开发者必读:计算机科学中的线性代数(附论文)

来源:机器之心 作者:Petros Drineas、Michael W. Mahoney 本文共3994字,建议阅读6分钟。 本文为你分享一篇来自普渡大学与UC...

Python|线代矩阵问题

Python中含有丰富的库提供我们使用,学习数学分支线性代数时,矩阵问题是核心问题。Numpy库通常用于python中执行数值计算,并且对于矩阵操作做了特殊的优...

利用 Numpy 进行矩阵相关运算

NumPy 是Python数据分析必不可少的第三方库,NumPy 的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据类型。如今,N...

开发者必读:计算机科学中的线性代数

高斯约旦消元法求逆矩阵的思想(分块矩阵的逆矩阵)

求一个 N × N N×N N×N的矩阵的逆矩阵。答案对 1 0 9 + 7 10^9+7 109+7取模。

矩阵分析(十三)矩阵分解

设A\in \mathbb{C}_r^{m\times n},则存在B\in \mathbb{C}_r^{m\times r}, C\in \mathbb{C}...

数据科学中必须知道的5个关于奇异值分解(SVD)的应用

这听起来是不是很熟悉?我经常听到我大学的熟人抱怨他们花了很多时间的代数方程在现实世界中基本没用。

Numpy中常用的10个矩阵操作示例

我将包括本文中讨论的每个矩阵操作的含义、背景描述和代码示例。本文末尾的“关键要点”一节将提供一些更具体矩阵操作的简要总结。所以,一定要阅读这部分内容。

线性代数与解析几何——Part2 矩阵与行列式

更多文章

社区活动

腾讯云自媒体分享计划

入驻社区,可分享总价值百万资源包

邀请好友加入自媒体分享计划

邀请好友,同享奖励 30 / 100 / 180 元云服务器代金券

长按识别或截图保存

关注腾讯云开发者

Copyright © 2013-2022

Tencent Cloud. All Rights Reserved.

腾讯云 版权所有

【BT下载完全教程】

首先下载:BT之家精灵[BT下载软件](带有内网映射器)

下载地址:

1:http://soft.btbbt.com/SoftView/SoftView_16489.html下载完后安装!

1 能介绍一下比特精灵吗?

比特精灵是一款界面美观,使用简单,功能强大的BT客户端.C++全新内核.它不仅提供BitTorrent协议的完全实现,而且提供强大的个性化功能.

2 比特精灵有哪些主要功能和特点?1) 智能可控的缓存功能,尽可能的保护硬盘. .

2) 在下载过程中,需要时才创建文件.

3) 高速下载,挑战网速极限.4) 强大的管理功能,文件分类管理,支持自定义类别.

5) 可以对每一个Torrent中的文件进行选择性的下载.

6) 实用的全局及单独任务的速度控制.

7) 详细的对等连接信息.可以在任务运行的时候关闭不合适的连接.

8) 支持附加tracker,可以在任务运行中加入多个tracker,进一步提高速度.

9) 当连接的速度过慢的时候自动关闭该连接,有效利用资源.

10) 内存池技术,支持在系统可用内存过低时释放内存以及是内存池利用率不高时压缩内存池.

11) IE集成.

12) 可开关的气泡提示,及时提示运行状态.

13) 当磁盘空间不足的时候自动中止任务.

14) 清晰明了的程序运行状态.

15) 下载队列,及计划下载.

16) 智能可控的网站收集器.

17) 监视剪贴板.

18) 极快的文件检测速度,进一步保护硬盘.

19) 支持HTTP/SOCK4/SOCK5代理,让你下载无限制

20) 简单易用美观的用户界面.

3怎样开始一个新的任务?任务属性中的各个选项分别表示什么意思?有什么作用

可以通过主窗口工具栏中的"添加任务"按钮或者菜单"编辑->添加任务"来开始一个新的任务,或者在IE浏览器中右击Torrent文件的URL链接,在弹出的菜单中选择"用比特精灵下载". 这样你会看到添加新任务界面,指定类别和路径,按确定添加新任务.在高级选项里,你可以看到关于该任务的详细设置.以下是关于有关选项的简单说明.

1) 该任务的Torrent文件:如果是通过IE菜单添加的任务,那么比特精灵会自动”Torrent”后面的编辑框填入该Torrent文件的URL链接,否则,你需要手动添加Torrent文件的磁盘路径或者是URL路径

2) 该任务的类别或路径:在类别一栏为该任务选择类别,如果无类别设置,比特精灵会将该任务保存在默认的基准路径(通常是安装磁盘的Downloads目录),您可以通过”编辑”按钮来改变类别路径或者添加/删除类别您也可以在"保存到"一栏直接指定保存路径.

3) 最大缓存区块:最大缓存区块指的是该任务在运行的时候能使用的最大缓存区块个数,用于指定任务缓存的大小.比特精灵默认的标准区块大小为256KB.如果任务的区块大小不同于默认区块,比特精灵会自动转化为默认区块来决定该任务的最大缓存.例如:某任务的实际区块为512KB,设置的最大缓存区块为50,则该任务的最大缓存为(256*50)KB,实际最大缓存区块数目为50/(512/256)=25个.比特精灵正是采用缓存的技术来保护硬盘,最大缓存区块的合理设置依网络速度和硬件设置而各不相同.

4) 下载前预分配磁盘空间.选上该选项,比特精灵将会在下载前预先分配磁盘空间,这可能会耗费较长的时间和较高的CPU,特别是任务比较大的时候,但是可以减少磁盘碎片,并且保证有足够的空间来完成下载任务.如果不选的话,比特精灵将较快地进入连接状态,但是不能保证有足够的磁盘空间(在下载过程中,如果磁盘空间不足,比特精灵会自动中止任务)以及可能会产生一些磁盘碎片.

5) 下载连接数和上传连接数.下载连接数指的是比特精灵从本地发起的主动连接(在连接页面表示为向上的兰色的箭头),而上传连接数指的是连入的连接数(在连接页面表示为黄色的向下的箭头).通常,上传连接比较容易获得数据.

4 比特精灵可以用于内网吗?

可以,只要你能正常访问Internet,你就能使用比特精灵.

5 比特精灵支持http代理吗?我该去哪里配置?

比特精灵从1.2.0版本起开始支持http代理,2.0以后支持sock4/sock5代理.请到选项->个人配置->高级选项里进行相关的配置.

6 比特精灵可以将下载的文件存放到网上邻居吗?

可以.在添加任务的时候将保存路径设置为网上邻居中的相关目录.

.

7 怎么选择文件下载?

在”添加任务“时,你可以在"文件选项"里选择文件,在任务运行阶段,你可以通过"文件信息"页实现文件过滤性下载.具体的做法是,选中要下载的文件,将该文件前头的复选框打勾,然后确定.

8 选择"开始下载前预分配磁盘空间"和不选有什么不同?

选上该选项,比特精灵将会在下载前预先分配磁盘空间,这可能会耗费较长的时间和较高的CPU,特别是任务比较大的时候,但是可以减少磁盘碎片,并且保证有足够的空间来完成下载任务.如果不选的话,比特精灵将较快地进入连接状态,但是不能保证有足够的磁盘空间(在下载过程中,如果磁盘空间不足,比特精灵会自动中止任务)以及可能会产生一些磁盘碎片. 需要提醒的是,如果你需要选择文件下载,请不要预先分配空间,以避免不必要的资源浪费.

9 怎样才能降低比特精灵的内存使用?

如果您想降低内存使用,可以编辑任务属性,将最大缓存区块的数目设得小一些.其次,"选项->个人设置->其他选项"中的"尽量释放内存..."选项也会有所帮助.另外,比特精灵自1.1.0版本推出了内存池技术,更有效地管理和利用内存.如果您正在使用的是1.1.0或者更新的版本,建议选上"选项->个人设置->高级选项"中的"压缩内存池..."选项.

10 为什么有时候连接失败,比特精灵并不尝试重试?

有三种情况比特精灵不会尝试重试:其一,当tracker服务器返回HTTP40X错误号的时候,这表示您所请求的文件不存在其二,当您选择"作为种子上传",但本地的种子文件有错误的时候其三,该任务的重试次数已经达到了最大重试次数(可以在"选项->个人设置->任务属性"里设置)

11 怎样向正在运行的任务附加tracker?

编辑任务属性,在"trackers"页,依提示操作即可.需要提醒的是,只有左边的复选框被选中的Tracker才能真正生效.

12 比特精灵能自动检测新版本吗?

可以.选上"选项->检查新版本",当有新的版本发布时,比特精灵会自动提醒您更新.建议您时常更新版本,因为无论在功能方面还是性能方面,比特精灵都会带给您意想不到的惊喜.

13 为什么有时候在任务信息中显示的已下载数大于任务栏中显示的完成数?是程序出错了吗?

这是正常现象.任务信息栏中的已下载数指的是该任务中比特精灵接受到的数据总和,其中可能包括错误的数据包以及已经部分下载但还未写到硬盘中的区块,而任务栏中的完成数指的是实际的写到硬盘中的数据. 另外,当任务停止后,信息栏显示的下载数可能比实际数要低,这是正常现象,待下次启动后会恢复正常.

14 我选择了"当所有任务完成后关机",可为什么所有下载都已经完成了,比特精灵还在运行?

如果任务属性中没有设定做种时间,比特精灵会在任务完成后自动做种一或2个小时再自动关机.

15 怎么打开比特精灵的端口映射功能?

从1.2.0 RC5版起,比特精灵就是默认支持端口映射功能的,您所需要做的就是确保在您的网关/路由上做了正确的NAT设置.

16 我能看到我的对等连接的完成状况吗?

当然.在连接列表的右边小窗口中显示的就是选中对等连接的完成状况.绿色的表示该区块可用(对方有,本地没有),灰色表示该区块不可用(对方和本地都没有),兰色表示本地已经完成了对该区块的下载.

17 怎样才能提高比特精灵的下载速度?

比特精灵的内核已经为高速下载做了最好的优化.从1.1.0RC2版本起,比特精灵的速度优势尤其明显.当然,合理的设置,有效地利用资源会让比特精灵有更好的表现.如果你是内网用户,而且不能做端口映射(即别人无法主动找到你,你的连接页面中只有兰色的向上的连接),那么建议你在任务属性中将上传连接设到最小,将下载连接设置得大一些如果你有公网IP,或者虽然是内网用户,并且通过端口映射等措施,能够让别人访问你(这时你的连接页面中能看到黄色的向下的连接),那么,建议你让任务属性中的上传连接数大于下载连接数,因为通常上传连接(黄色箭头)更容易获得数据.关于连接的具体描述,请参阅问题2.另外,根据上网方式和硬件条件,设置合理的缓存区块也很重要.

18 如何进行下载/上传速度限制?

你可以通过全局速度限制和任务速度限制来实现对速度的控制.请到"选项->个人设置->任务属性"中设置最高全局上传/下载速度,在单个任务的任务属性里设置任务的最高全局上传/下载速度.任务的最高速度限制服从全局的速度限制.比如,全局的最高上传速度为300KB/S,而任务的最高上传速度为500KB/S,则实际运行中,以300KB/S为最高限制.需要提醒的,有时候比特精灵的瞬时速度显示会大于最高限制速度,这是由于任务调度,网络缓存等原因造成的,不用担心.任务的平均速度肯定会低于最高速度限制.另外还需要声明的是,比特精灵提供速度限制的选项,主要是考虑到用户需要同时进行多种网络活动,不希望比特精灵占据全部带宽的情况.请不要利用这个功能一味的只下载,不上传.实际上,无数的测试表明,当你上传越多(贡献越多)的时候,下载到的数据也越多(得到也越多),这正是BT的精神:我为人人,人人为我!

19 任务信息里的可用连接/种子数和已连接/种子数有什么区别?

连接/种子数指的是tracker服务器返回的种子连接数和种子数,已连接/种子数指的是当前任务已经成功建立连接的连接数和种子数.由于tracker服务器信息的实效性以及网络状况等原因,已连接/种子数会和连接/种子数有一些差距!

20 我用的是WINXP系统,为什么我运行比特精灵的时候,系统不能进入待机状态?

为防止由于系统自动待机而导致任务中止,比特精灵提供"当有任务运行时防止计算机进入待机状态的选项",且默认生效.如果需要待机,请把该选项去掉(选项->个人设置->高级选项)

21 我是内网用户,能主动做种吗?为什么我的上传速度很慢?

当然可以.下载完成以后,选择作为种子上传即可。如果你的网络支持端口映射,那么恭喜你,你能做一个名副其实的种子,不仅你能连别人,主动做种,别人也能顺利地找到你.另外,当你要主动做种子时,可以通过右键菜单的"作种子上传"-"快速检测"来快速作种,避开文件检查.

22 我是内网用户,为什么我的连接列表里只有蓝色的出去的连接?

这是因为你的网关或者路由器没有做端口映射,局域网以外的人无法访问到你.请联系网管,开通相应的端口映射(如果允许的话)

23 为什么我什么都当不到,一直 显示"有错误发生,请等待重试"?

在两种情况下您会得到该错误:1,你无法访问该服务器2,该服务器忙或者已经关闭.通常遇到这类错误,比特精灵会自动重试,如果你确认只是因为服务器忙的话,建议耐心等待.

24 在没有种子的时候,有没有可能完成下载任务?

当然可能.只要你的所有对等连接持有的区块能组成一个完整的文件,你就能完成下载任务.在1.2.0以后的版本中,比特精灵提供任务完成可能性估算.在连接页面可以看到,比特精灵将完成情况分成5个等级,依次是,poor,not bad,good,very good和nice,并且提供对但个对等连接的估算和任务的整体估算.你可以根据这个估算来觉得是否继续该任务.

25 比特精灵是免费的吗?

是的,比特精灵免费.我们愿与每一个用户分享使用精灵的权利.

以上是我几个月为大家回答问题以来,总结的全部问题,如果有新的问题,我还会不断更新补上的,谢谢大家支持BT之家!如有疑问请提出!还有,如果想知道BITMOET的问题解决,请看我的另一篇帖子:

Bitcomet 0.56:

点击下载我再送大家Bitcomet使用手册:

附件: BitComet_chs.chm (295.89 K)

BitComet常见的问题以及速度问题解答

BitComet安全吗?

BitComet基于BitTorrent协议,并有所改进(参考BitComet协议)。BitTorrent是离散中心服务器(Tracker)型的P2P协议,目的在于高速分享大文件,而非匿名。下载/上传者的IP将被Tracker和其他下载/上传同一文件的用户获得(否则无法直接通讯),正在下载的文件将被共享。但除此以外,用户机器上的其它文件都不会被泄露。

监听端口有什么作用?

监听端口能使你获得远程连接。前提是你是公网ip,或你对监听的端口作了端口映射。

在端口通的情况下,很多内网用户就可连接到你。你就可以和更多的人进行连接下载,你的速度就会快起来。简单的说,你不监听端口,将少了一半的传输机会。

Peer详细列表中什么是“远程”,什么是“本地”?

通俗地说“本地”就是自己根据IP找到了别人,“远程”就是别人根据你的IP找到了你。如果没有监听端口,或者没有公网IP,或者在网络防火墙后,或者网关没有端口映射,别人是找不到你的或者找到了也连不上,也就没有远程连接,这样的用户通常被称作“内网”。谁都可以找到并连上公网用户;内网用户只能主动去找别人;内网用户和内网用户之间一般互相找不到。

BitComet和其他BitTorrent软件相比下载速度上有什么不同?

BitComet是少数的不使用BitTorrent官方Python内核的BT下载软件之一。作者灿烂微笑花费了相当长的时间用C++完全独立重写内核,曾经发布过N多测试版,并加入了如下的UPnP自动端口映射功能提升内网性能。应该说对性能的过份执着也是目前界面简朴的一个重要原因,只能对不住那些想要时尚花哨界面的朋友们了。至于速度,请自行试用比较。

为什么说Bitcomet的磁盘缓存可以保护硬盘?

传统BT高速下载时硬盘会响得很厉害,这是大量的随机读取造成的。举个例子:100M的文件是被分成256K大小的Piece(块),按最少存在原则随机下载,而每个Piece再被分成16K的slice(片)顺序请求,每次通讯就是以slice为单位的。因此总的说是随机访问,但相邻slice的顺次访问几率较大,因此可以以piece为单位在内存中建立缓存。BitComet可以由用户设置缓存大小。下载上传时通过统计标签可以看出缓存的效率:读/写命中率、磁盘读写请求频率和实际读写频率,可以明显地看出牺牲一小部分内存作缓存对硬盘的保护作用。

磁盘缓存应设置多少合适?

BitComet的磁盘缓存功能可以有效地保护硬盘,提高读写效率,缓存设置多大并无一定之规。如果下载或是上传速度常常超过150KB/s,那么就有必要增大BitComet默认的缓存设置以进一步保护硬盘了,请根据自己的一般下载速度和内存容量设置。BitComet允许设置缓存最小值、最大值、并且在分配之前检测当前物理内存以确保一定空余量,此外可以在全局统计中看到当前缓存分配状态。一般500KB/s的速度下建议将缓存最大值设定为40M以上。

BitComet续传不需要扫描,那么是如何保证文件完整的?

BitComet将上一次的下载状态以xml文件形式保存在status目录下,只要两次下载中间没有第三方程序更改过目标文件,或者曾经出现过文件IO错误,那么续传无需扫描也可以保证下载的完整性。假如中途曾遇到停电或其他IO错误,请选择手动检查完整性扫描一遍即可放心续传。如果下载中途发生文件I/O错误或者磁盘空间不足,会自动停止该文件下载;意外断电重新进入时会提示有必要时手动扫描一遍。

什么是UPnP自动端口映射?

准确地说是适合内网但不仅限于内网。内网的特点就是无法对外打开监听端口,因此会损失所有外部发起的连接。比如ADSL用路由器、Windows网络共享等等。常用的解决办法是用NAT进行端口映射,将网关/路由上的端口映射到本机,但操作过程相对复杂晦涩。BitComet支持UPnP自动端口映射,可以在本机上自动完成网关端口映射的操作。用BitComet可以在不作任何配置的情况下自动在网关上打开对外端口(参考微软文档),速度自然得到了提升。UPnP已经在WindowsXP中得到了支持(见微软文档),并在MSN Messenger中得到了应用。目前支持UPnP的操作系统是WindosXP,网关设备包括WindowsXP的Internet连接共享和防火墙及支持UPnP的DSL和Cable路由器。

我的操作系统是XP,为什么日志上说UPnP映射失败?

可能的原因很多,可以如下尝试关闭本机的ICF网络防火墙,因为XPSP1的ICF和UPnP设备发现有冲突。

UPnP的适用性?

BitComet支持UPnP。但能否成功UPnP,不仅在于BitComet,还包括:

网关或路由器是否支持UPnP,且管理员打开了网关或路由器的UPnP功能;

你的电脑的操作系统是否支持UPnP,目前官方宣称可以支持的只有Windows Me和Windows XP。

我的操作系统是XP,为什么日志上说UPnP映射失败?

可能的原因很多,比如:

1。系统服务中禁止了SSDP服务(用于寻找upnp设备)

2。开启了XP下的SP1的ICF(网络连接防火墙)。(XP的ICF与UPnP设备发现有冲突,SP2修复了这个问题,但是仍然需要在防火墙设置中允许例外:UPnP 框架。)

3。路由器不支持UPnP,请向制造商询问。

目前有哪些软件或硬件路由器可以支持UPnP?

软件:目前已知可以支持UPnP网关软件有Windows XP中的ICS/ICF、WinRoute Firewall 5,诺顿网络安全特警2003/2004。诺顿网络安全特警2002,天网2.50/2.51、瑞星网络防火墙、金山网镖等都不支持UPnP。

硬件路由器:标有支持UPnP字样的路由器,比如TP-Link, D-Link的某些型号。

BitComet显示UPnP成功,但是仍然没有“远程”?

如图,网关或路由器一般由2个模块组成:网络防火墙、NAT。外部数据要进入内部网络,必须先通过网络防火墙,只有通过了网络防火墙,才能经由NAT转发给内网中的目标电脑。BitComet的设计遵照UPnP协议,可以在网关或路由器做自动端口映射,映射成功之后就会显示UPnP成功,但可能因为网关或路由器的防火墙的设置问题,已经将外部的连接请求拦截,这个外部请求不能通过防火墙,更不用说到NAT模块后转发给内网中的目标电脑了。所以,在这种情况下,虽然BitComet显示UPnP成功,但仍然没有“远程”。

数据转发到本机端口了,但是由于本机防火墙的不允许该端口的TCP连入从而被丢弃了。BitComet可以自动配置ICF允许BitComet使用的那个端口,但是其他的网络防火墙软件,比如天网等就需要自行配置了。

为什么刚打开BitComet我的防火墙就报告BitComet正在连接某IP的80端口,是不是有木马?

这个是自动检查版本更新。此功能默认打开,可以在选项->高级里关闭。另外请按照本站的链接下载安装包,其完整性可以通过MD5验证码来检查。

关于BitComet中的广告

BitComet中文版包含非弹出式图片广告和菜单上的文字广告,广告中的任何内容都和BitComet无关。一个喜欢自己做的东西的人是不会愿意被广告弄得乱七八糟的,然而加入广告是一种无奈,其原因是国内信用卡普及不够导致捐款不现实;也是一个尝试,其目的是希望BitComet能有足够的能力继续其独立自主个性化的发展,而不是被某某公司收购然后从此走上一条纯商业化的道路。

BitComet怎么续传其他软件下载了一般的任务?

只要文件是一样的(文件名相同、文件大小一样),不同的BT软件下载的,包括FTP以及HTTP方式下载的,都是可以互相续传的。要注意的是:

不同的软件对应的文件路径要一致。

建议用BC打开.torrent时候选择续传,然后选择文件目录。

如果进度是0%,点右键-重新检查完整性。

其他软件续传BitComet下载了一半的内容,要注意把文件名的!bc后缀去掉,也可以考虑在BitComet选项里最好去掉自动添加!bc后缀名这一选项

最好做好文件备份,以免前功尽弃。

BitComet续传不需要扫描,那么是如何保证文件完整的?

BitComet将上一次的下载状态以xml文件形式保存在status目录下,只要两次下载中间没有第三方程序更改过目标文件,或者曾经出现过文件IO错误,那么续传无需扫描也可以保证下载的完整性。假如中途曾遇到停电或其他IO错误,请选择手动检查完整性扫描一遍即可放心续传。如果下载中途发生文件I/O错误或者磁盘空间不足,会自动停止该文件下载;意外断电重新进入时有必要时手动扫描一遍。

为什么最大连接数只有60,明明看到可能连接数有好几百?

使用BC的默认设置的话,单任务最大连接数会保持在60,这是各种综合情况下一个比较均衡的方案。如果用户很多而你的速度又很低,可以自己调整每任务保持连接数或者最大连接数,内网用户可以考虑尽量设高点(如果你的配置不会因为连接数的增多而导致其他负面影响的话),修改方法如下:选项 - 高级设置 - 网络连接 - 每任务最大连接数

左键单击下载torrent文件后为什么提示找不到文件?

.torrent文件没有正确关联到BC上,一般安装卸载的BT软件太多了就会出这个问题,0.55之后的BC安装时有注册torrent文件的选项(第四个打钩),如果还不行就在文件夹选项-文件类型里更改.torrent文件的打开方式为BC。

如何实现自动关机?

BC选项-任务设置。任务下载完成时,可以设置当分享率达到XX时自动停止任务、如果种子小于XX则继续上传的选项,仅当所有的任务都满足以上两个条件自动停止后,下面那个自动关机的设置才能实现。

如何让BitComet启动时自动开始下载任务?

选项 - 启动时自动继续下载上传任务。注意是继续而不是开始,所以上次关闭BC时任务必须是处于进行状态而不是停止状态。

BitComet续传不需要扫描,那么是如何保证文件完整的?

BitComet将上一次的下载状态以xml文件形式保存在status目录下,只要两次下载中间没有第三方程序更改过目标文件,或者曾经出现过文件IO错误,那么续传无需扫描也可以保证下载的完整性。假如中途曾遇到停电或其他IO错误,请选择手动检查完整性扫描一遍即可放心续传。如果下载中途发生文件I/O错误或者磁盘空间不足,会自动停止该文件下载;意外断电重新进入时有必要时手动扫描一遍。

为什么最大连接数只有60,明明看到可能连接数有好几百?

使用BC的默认设置的话,单任务最大连接数会保持在60,这是各种综合情况下一个比较均衡的方案。如果用户很多而你的速度又很低,可以自己调整每任务保持连接数或者最大连接数,内网用户可以考虑尽量设高点(如果你的配置不会因为连接数的增多而导致其他负面影响的话),修改方法如下:选项 - 高级设置 - 网络连接 - 每任务最大连接数

左键单击下载torrent文件后为什么提示找不到文件?

.torrent文件没有正确关联到BC上,一般安装卸载的BT软件太多了就会出这个问题,0.55之后的BC安装时有注册torrent文件的选项(第四个打钩),如果还不行就在文件夹选项-文件类型里更改.torrent文件的打开方式为BC。

如何实现自动关机?

BC选项-任务设置。任务下载完成时,可以设置当分享率达到XX时自动停止任务、如果种子小于XX则继续上传的选项,仅当所有的任务都满足以上两个条件自动停止后,下面那个自动关机的设置才能实现。

如何让BitComet启动时自动开始下载任务?

选项 - 启动时自动继续下载上传任务。注意是继续而不是开始,所以上次关闭BC时任务必须是处于进行状态而不是停止状态。

任务列表中什么是“健康度”?

BitComet中健康度表示文件内容的分布情况。基本等同于其他BT客户端的"等效种子数",不过更简单实用。总的来说“健康度”超过100%就可以下载,数字越大越好;“健康度”小于100%就有可能下载不完或需要补种上传。当然所有这些都只考虑连上的peer。 其具体定义如下:

如果任务正在下载中:

若网上的文件不全(可能下载不完),健康度就是网上存在的占你尚需要的部分的百分比;

若网上文件的全了(比如有种子),健康度就是你需要下载的文件部分在网上的等效份数。

如果任务正在上传中:

若网上的文件不全(除自己之外),健康度就是网上存在的部分能拼凑出来的占总的大小的百分比;

若网上的全了(下载者之间理论上互相能补充直到完整)那就是总的分布的等效份数(不包括自己)。

任务列表中什么是“分享率”?

BitComet中的分享率表示自己的分享程度,数字越大表示自己的贡献越大,人品越好。

下载任务:任务总上传量 / 任务总下载量

做种任务: 任务总上传量 / 文件总计大小

用户列表中什么是“远程”,什么是“本地”?

通俗地说“本地”就是自己根据IP找到了别人,“远程”就是别人根据你的IP找到了你。如果没有监听端口,或者没有公网IP,或者在网络防火墙后,或者网关没有端口映射,别人是找不到你的或者找到了也连不上,也就没有远程连接,这样的用户通常被称作“内网”。谁都可以找到并连上公网用户;内网用户只能主动去找别人;内网用户和内网用户之间一般互相找不到。具体请参考:内网外网

用户列表中什么是“内网互联”(防火墙和NAT穿越)?(新)

传统bt客户端中,下载同一个任务的公网用户可以帮助内网用户中转数据,但是内网用户互相不能连接上。BitComet可以不同内网的用户通过UDP互相连接实现内网互联。对内网用户来说这通常意?