包含javaurlopen的词条

博主:adminadmin 2022-12-02 05:06:10 64

本篇文章给大家谈谈javaurlopen,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Python导入模块问题

Python是一种面向对象的编程语言,里面包含有丰富强大的库,想要学习Python开发,首先需要学习如何导入模块或包。下面就跟大家一起讨论下Python导入模块的几种方法:

常规导入

最常用的导入方式,大概是这样的:

import sys

只需要使用 import ,然后指定希望导入的模块或包即可。用这种方法导入的好处是可以一次性导入多个包或模块:

import os, sys, time

虽然这节省了空间,但是却违背了Python风格指南。 Python风格指南建议将每个导入语句单独成行 。

有时在导入模块时,你想要重命名这个模块。这个功能很容易实现:

import sys as system

print(system.platform)

上面的代码将我们导入的 sys 模块重命名为 system 。我们可以按照和以前一样的方式调用模块的方法,但是可以用一个新的模块名。也有某些子模块必须要使用点标记法才能导入。

import urllib.error

这个情况不常见,但是对此有所了解总是没有坏处的。

使用from语句导入

有时我们只想要导入一个模块或库中的某个部分。那么Python是如何实现这点:

from functools import lru_cache

上面这行代码可以让你直接调用 lru_cache 。如果按常规方式导入 functools ,那么就必须像这样调用 lru_cache :

functools.lru_cache(*args)

根据实际的使用场景,上面的做法可能是更好的。在复杂的代码库中,能够看出某个函数是从哪里导入的这点很有用的。不过,如果你的代码维护的很好,模块化程度高,那么只从某个模块中导入一部分内容也是非常方便和简洁的。

当然,你还可以使用from方法导入模块的全部内容,就像这样:

from os import *

这种做法在少数情况下是挺方便的,但是这样也会打乱你的命名空间。问题在于,你可能定义了一个与导入模块中名称相同的变量或函数,这时如果你试图使用

os 模块中的同名变量或函数,实际使用的将是你自己定义的内容。因此,你最后可能会碰到一个相当让人困惑的逻辑错误。

标准库中我唯一推荐全盘导入的模块只有Tkinter 。

如果你正好要写自己的模块或包,有人会建议你在 __init__.py 文件中导入所有内容,让模块或者包使用起来更方便。我个人更喜欢显示地导入,而非隐式地导入。

你也可以采取折中方案,从一个包中导入多个项:

from os import path, walk, unlinkfrom os import uname, remove

在上述代码中,我们从 os 模块中导入了5个函数。你可能注意到了,我们是通过多次从同一个模块中导入实现的。当然,如果你愿意的话,你也可以使用圆括号一次性导入多个项:

from os import (path, walk, unlink, uname,

remove, rename)

这是一个有用的技巧,不过你也可以换一种方式:

from os import path, walk, unlink, uname, \

remove, rename

上面的反斜杠是Python中的续行符,告诉解释器这行代码延续至下一行。

相对导入

PEP 328 介绍了引入相对导入的原因,以及选择了哪种语法。具体来说,是使用句点来决定如何相对导入其他包或模块。这么做的原因是为了避免偶然情况下导入标准库中的模块产生冲突。这里我们以PEP 328中给出的文件夹结构为例,看看相对导入是如何工作的:

my_package/

__init__.py

subpackage1/

__init__.py

module_x.py

module_y.py

subpackage2/

__init__.py

module_z.py

module_a.py

在本地磁盘上找个地方创建上述文件和文件夹。在顶层的 __init__.py 文件中,输入以下代码:

from . import subpackage1from . import subpackage2

接下来进入 subpackage1 文件夹,编辑其中的 __init__.py 文件,输入以下代码:

from . import module_xfrom . import module_y

现在编辑 module_x.py 文件,输入以下代码:

from .module_y import spam as ham

def main():

ham()

最后编辑 module_y.py 文件,输入以下代码:

def spam():

print('spam ' * 3)

打开终端, cd 至 my_package 包所在的文件夹,但不要进入 my_package 。在这个文件夹下运行Python解释器。我使用的是IPython,因为它的自动补全功能非常方便:

In [1]: import my_package

In [2]: my_package.subpackage1.module_xOut[2]: module

'my_package.subpackage1.module_x' from

'my_package/subpackage1/module_x.py'

In [3]: my_package.subpackage1.module_x.main()spam spam spam

相对导入适用于你最终要放入包中的代码。如果你编写了很多相关性强的代码,那么应该采用这种导入方式。

你会发现PyPI上有很多流行的包也是采用了相对导入 。还要注意一点,如果你想要跨越多个文件层级进行导入,只需要使用多个句点即可。不过, PEP

328建议相对导入的层级不要超过两层 。

还要注意一点,如果你往 module_x.py 文件中添加了 if __name__ == ‘__main__’ ,然后试图运行这个文件,你会碰到一个很难理解的错误。编辑一下文件,试试看吧!

from . module_y import spam as ham

def main():

ham()

if __name__ == '__main__':

# This won't work!

main()

现在从终端进入 subpackage1 文件夹,执行以下命令:

python module_x.py

如果你使用的是Python 2,你应该会看到下面的错误信息:

Traceback (most recent call last):

File "module_x.py", line 1, in module

from . module_y import spam as hamValueError: Attempted relative import in non-package

如果你使用的是Python 3,错误信息大概是这样的:

Traceback (most recent call last):

File "module_x.py", line 1, in module

from . module_y import spam as hamSystemError: Parent module '' not loaded, cannot perform relative import

这指的是, module_x.py 是某个包中的一个模块,而你试图以脚本模式执行,但是 这种模式不支持相对导入 。

如果你想在自己的代码中使用这个模块,那么你必须将其添加至Python的导入检索路径(import search path)。最简单的做法如下:

import syssys.path.append('/path/to/folder/containing/my_package')import my_package

注意,你需要添加的是 my_package 的上一层文件夹路径,而不是 my_package 本身。原因是 my_package 就是我们想要使用的包,所以如果你添加它的路径,那么将无法使用这个包。

我们接下来谈谈可选导入。

可选导入(Optional imports)

如果你希望优先使用某个模块或包,但是同时也想在没有这个模块或包的情况下有备选,你就可以使用可选导入这种方式。这样做可以导入支持某个软件的多种版本或者实现性能提升。以 github2包 中的代码为例:

try:

# For Python 3

from http.client import responsesexcept ImportError: # For Python 2.5-2.7

try:

from httplib import responses # NOQA

except ImportError: # For Python 2.4

from BaseHTTPServer import BaseHTTPRequestHandler as _BHRH

responses = dict([(k, v[0]) for k, v in _BHRH.responses.items()])

lxml 包也有使用可选导入方式:

try:

from urlparse import urljoin

from urllib2 import urlopenexcept ImportError:

# Python 3

from urllib.parse import urljoin

from urllib.request import urlopen

正如以上示例所示, 可选导入的使用很常见,是一个值得掌握的技巧 。

局部导入

当你在局部作用域中导入模块时,你执行的就是局部导入。如果你在Python脚本文件的顶部导入一个模块,那么你就是在将该模块导入至全局作用域,这意味着之后的任何函数或方法都可能访问该模块。例如:

import sys # global scope

def square_root(a):

# This import is into the square_root functions local scope

import math

return math.sqrt(a)

def my_pow(base_num, power):

return math.pow(base_num, power)

if __name__ == '__main__':

print(square_root(49))

print(my_pow(2, 3))

这里,我们将 sys 模块导入至全局作用域,但我们并没有使用这个模块。然后,在 square_root 函数中,我们将 math

模块导入至该函数的局部作用域,这意味着 math 模块只能在 square_root 函数内部使用。如果我们试图在 my_pow 函数中使用

math ,会引发 NameError 。试着执行这个脚本,看看会发生什么。

使用局部作用域的好处之一,是你使用的模块可能需要很长时间才能导入,如果是这样的话,将其放在某个不经常调用的函数中或许更加合理,而不是直接在全局作

用域中导入。老实说,我几乎从没有使用过局部导入,主要是因为如果模块内部到处都有导入语句,会很难分辨出这样做的原因和用途。

根据约定,所有的导入语句都应该位于模块的顶部 。

导入注意事项

在导入模块方面,有几个程序员常犯的错误。这里我们介绍两个。

循环导入(circular imports)

覆盖导入(Shadowed imports,暂时翻译为覆盖导入)

先来看看循环导入。

循环导入

如果你创建两个模块,二者相互导入对方,那么就会出现循环导入。例如:

# a.pyimport b

def a_test():

print("in a_test")

b.b_test()

a_test()

然后在同个文件夹中创建另一个模块,将其命名为 b.py 。

import a

def b_test():

print('In test_b"')

a.a_test()

b_test()

如果你运行任意一个模块,都会引发 AttributeError 。这是因为这两个模块都在试图导入对方。简单来说,模块 a 想要导入模块 b

,但是因为模块 b 也在试图导入模块 a (这时正在执行),模块 a 将无法完成模块 b

的导入。我看过一些解决这个问题的破解方法(hack),但是 一般来说,你应该做的是重构代码,避免发生这种情况 。

覆盖导入

当你创建的模块与标准库中的模块同名时,如果你导入这个模块,就会出现覆盖导入。举个例子,创建一个名叫 math.py 的文件,在其中写入如下代码:

import math

def square_root(number):

return math.sqrt(number)

square_root(72)

现在打开终端,试着运行这个文件,你会得到以下回溯信息(traceback):

Traceback (most recent call last):

File "math.py", line 1, in module

import math

File "/Users/michael/Desktop/math.py", line 6, in module

square_root(72)

File "/Users/michael/Desktop/math.py", line 4, in square_root

return math.sqrt(number)AttributeError: module 'math' has no attribute 'sqrt'

这到底是怎么回事?其实,你运行这个文件的时候,Python解释器首先在当前运行脚本所处的的文件夹中查找名叫 math

的模块。在这个例子中,解释器找到了我们正在执行的模块,试图导入它。但是我们的模块中并没有叫 sqrt 的函数或属性,所以就抛出了

AttributeError 。

如何使用QPython开发Android应用

QPython入门

QPython WebApp应用框架能够让具有Web开发背景的开发者快速构建Android本地应用. 作为开发者,充分掌握你手中的利器,才能做到庖丁解牛,游刃有余地推动项目,接下来,你只需要30分钟,即可掌握QPython以及WebApp应用框架.

QPython的使用

QPython是我们项目的运行容器,我们所开发的项目需要运行在QPython之上(当然QPython也提供其他不同定位的程序开发支持,可以在以后的Codelab教程中逐一展示),因此你需要掌握以下使用技巧:

了解QPython的基本功能,能使用开始按钮以及开发者工具面板

你需要知道如何把项目上传或更新到QPython中

你需要掌握如何使用QPython运行项目

程序运行出错,如何查看错误信息,这个是作为开发者必备的技能

有些小的改动,比起上传或者更新整个项目而言,使用自带的QEdit方便第修改源代码可能会更简单

如果你想使用第三方库,你需要知道如何使用QPython来安装第三方库

更多详情可以参考如何使用QPython,以及如何使用QPython开发第一个HelloWorld

QPython的WebApp框架

为了让Web开发者能够快速上手Android应用开发,QPython推出了WebApp框架,它包括两个部分 - 基于Bottle框架的可定制本地Web服务器 - 构建于Android系统的WebView容器,

实现上述两个特性,就我们能够轻松地让QPython运行本地WebApp,避免传统服务端WebApp的网络传输瓶颈问题,获得更佳用户体验,此外,通过让Python能作为Backend语言,拥有更强大的包括网络,图像,运算等多种处理能力. 再加上强大的Python第三方库支撑,拥有Python/Web开发经验的人即可轻松开发体验良好的WebApp

更多详情可以参考QPython WebApp帮助

应用设计

掌握了QPython基础使用以及其WebApp框架后,我们可以开始针对我们的项目目标设计应用系统

应用的使用流程分析

输入:输入部分及为根据用户地理位置

输出:用户所在城市的PM2.5数值以及对应的防护措施建议

业务处理:通过地理位置坐标获得所在城市,通过请求PM2.5接口数据源获得PM2.5数值,再根据等级区分展示对应的防护措施建议

关键数据来源

地理位置信息:通过QPython的SL4A接口可轻易获得

根据地理位置查询所在城市

PM2.5数据来源:根据PM2.5API可以查询到所在城市的PM2.5数值情况

了解QPython的地理位置的SL4A接口,掌握PM2.5的数据来源接口,Google的根据地理坐标查询所在城市

应用的交互设计

主要为根据不同的PM2.5展示做不同的预警展示,并能满足用户查看详情的需求

技术实现方面我们选定使用Bootstrap作为前端框架:Bootstrap能根据设备的宽度的不同提供适配的界面框架.

推进过程以及FAQ

如何开始

在开发机器上安装bootstrap, bottle,象Web开发一样去开发, 本地调试后

以上传到QPython运行目录/sdcard/com.hipipal.qpyplus/projects/

通过QPython的运行按钮运行查看效果

将在个人电脑上开发的项目上传到手机上有以下方法 - 启动QPython自带的FTP服务:在设置中可以看到FTP服务,开启FTP服务后会显示当前侦听的地址,端口以及帐号,你可以通过FTP客户端将项目目录上传到QPython运行目录 - 如果你的电脑安装了Android开发套件,你也可以连接手机到开发机后,执行 adb push 本地目录 /sdcard/com.hipipal.qpyplus/projects/PM2.5 来把项目上传到QPython的项目目录

用Web开发模式开发QPython WebApp

我们可以使用标准的本地Web开发流程去推进应用开发,左侧为浏览器, 中间为VIM窗口,右侧我们启动bottle开发的Web进程(QPython内建支持Bootle Web框架)

在你的开发机上下载Bootstrap, 并配置Python+bottle运行环境,按照QPython WebApp的规范建立项目目录

获得Bootstrap,获得Bottle

了解QPython中WebApp中文件的结构

上传到QPython运行

你可以将项目上传到手机的QPython项目目录

点击开始按钮即可看到PM2.5选项

启动后可以看到运行效果

功能开发

在UI开发的基础上进行能攻开发,即可得到我们最终的版本,下列为几个关键过程的参考代码:

获得地理坐标

Droid = androidhelper.Android()

location = Droid.getLastKnownLocation().result

location = location.get('network', location.get('gps'))

获得所在城市示范代码

ud  = urllib.urlopen(';sensor=true' % location)

json_result = ud.read()

ud.close()

""" process json_result """

获得所在城市PM2.5

ud = urllib.urlopen(';token=%s' % (city, token))

json_result = ud.read()

ud.close()

""" process json_result """

根据PM2.5数值给出建议

if pm25_quality == '优':

  ...

elif pm25_quality == '良好':

  ...

elif pm25_quality == '不好':

  ...

elif pm25_quality == '差劲':

  ...

else:

  ...

将关键代码实现后输出即可实现我们本次的目标

你可以获得PM2.5早知道项目源代码源代码

此外,你还想增加什么功能?天气预报, PM2.5变化趋势图以及预测 ?Just do IT !

sublime text2 的编辑器怎么用

代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大、灵活的编辑器,相信你和我一样,都不会例外。

我用过的编辑器不少,真不少~ 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号。它小巧绿色且速度非常快,跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮、代码补全等,但它有着很多其他编辑器没有的超酷的特性,让它的好用达到了前所未有的程度……

关于 Sublime Text 2:

曾经有人说过,世界上有两种编辑器,好用和不好用的;而在好用的编辑器中,又分两种,免费的和死贵死贵的。譬如说 VIM 和 TextMate,就是免费和死贵的典型。很不幸,今天的主角 Sublime

Text 2 也是个死贵死贵的代表,它是一款收费的商业软件,个人授权费高达 59 美刀。

不过大家不用慌,虽然它很贵,但作者很厚道地给用户们提供了免费无限制无限期的试用权,它只会偶尔提醒一下你木有购买,而且频率也很低,仅此而已,一直免费使用下去几乎是没有任何影响的。另外值得一提的是,用户购买一个授权即可同时在不同平台上使用,对于像我这种经常需要在 Mac 和

Win 之间切换使用的用户来说的确能省下一笔钱了。

因为 Sublime Text 2 编辑器的特性和使用技巧实在太过多,本人也未算用得精通,所以无法一一列举展现,只能选几个我认为比较有特色的特点进行介绍,而且这里也没有篇幅去介绍各种编辑技巧、快捷键使用之类的了。如果你愿意花时间折腾一下,你会发现它的能力是远超本文介绍的那么几点的,所以本文只能算是抛砖引玉吧,希望大家有好的技巧可以分享出来。

语法高亮、代码提示补全、代码折叠、自定义皮肤/配色方案、多便签页:

SublimeText2 支持但不限于 C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell,

HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl,

PHP, Python, R, Ruby, SQL, TCL, Textile and XML 等主流编程语言的语法高亮。ST2 拥有优秀的代码自动完成功能 (自动补齐括号,大括号等配对符号;自动补全已经出现的单词;自动补全函数名),非常智能;另外

ST2 也拥有代码片段(Snippet)的功能,可以将常用的代码片段保存起来,在需要时随时调用。当然,语法高亮、代码折叠、行号显示、自定义皮肤、配色方案等这些已经是一款现代编辑器应有的标配功能了,所以这里就不多做介绍了。

实用方便的代码提示补全功能

代码地图、多种界面布局与全屏免打扰模式:

Sublime Text 2 在界面上比较有特色的是支持多种布局和代码地图,也提供了 F11 和 Shift+F11 进入全屏免打扰模式,文字难描述,看下图吧。

完全开放的用户自定义配置与神奇实用的编辑状态恢复功能:

Sublime Text 2

的各种配置均由配置文件控制,完完全全的可以由用户自定义,如果你愿意折腾,甚至可以将它改得于原版完全不一样的操作体验。看下面的图,Setting -

Default 菜单会打开默认的软件配置文件(这个文件会记录一些诸如使用什么字体等很多很多配置信息),Key Bindings -

Default 是默认的快捷键配置文件,大家可以打开它们看看原本的一些设置是怎样配置的,但非常不建议直接在这里修改!你可以在 - User 结尾的文件(也就是用户自定义配置的意思)里面照样画葫芦那样来改,如果两边有相同的项目,它会以

- User 文件里面定义的为准。

这个例子里我在 Key Bindings - User 里面的第一行:{ "keys": ["alt+up"], "command": "swap_line_up" }, 意思就是按 Alt+方向键上时将当前选择的那一行向上移(与上一行交换位置),如果语法神马的没问题,保存好这个文件之后马上就可以使用这个快捷键了。

Sublime Text 2 的快捷键还支持双重组合,譬如默认情况下,将选中的文字改成大写的热键是

“Ctrl+K, Ctrl+U”,意思是当你先按下 Ctrl+K 之后迅速再按 Ctrl+U

进行触发(只按下Ctrl+K是没有作用的),这样可以避免很多热键冲突,也可以更灵活更多选择地进行热键自定义。不过在这里就不打算教大家怎样修改各种

配置或修改热键了,这恐怕能出一个手册的,这里有一个套比较完整的官方文档(鸟语),有兴趣的朋友可以去参考一下。

另外,SublimeText

还有一个值得一提的细节——”编辑状态恢复”,就是当你修改了一个文件,但没有保存,这时退出软件,ST2是不会很烦人地提示你要不要保存的,因为无论是

用户自发退出还是意外崩溃退出,下次启动软件后,你之前的编辑状态都会被完整恢复,就像你退出前一样。这个细节我认为非常非常的赞!因为我经常会尝试性地

去修改一些地方,但在确保没有问题之前又不想保存,这时如果有些事情打断自己,需要离开时,这个特性就很有用了,直接退出就行,不用烦,下次回来打开软件

继续编辑即可。当然,有了这个恢复特性再也不怕系统崩溃、断电了吧,真心让人觉得ST2特别特别的安全可靠,妥妥的啊!

强大的多行选择和多行编辑:

在写代码的过程中,我们经常需要同时编辑多行代码或者多个变量。在 Sublime Text 2 中拥有非常实用的多行操作技巧,灵活运用可以大大提高编辑速度哟!相信日后你可能会这样问自己:“当年没有这种方式的编辑器时我究竟是怎么活过来的?!”

下面是一些我所了解的多行编辑方法:

鼠标选中多行,按下 Ctrl+Shift+L (Command+Shift+L) 即可同时编辑这些行;

鼠标选中文本,反复按 CTRL+D (Command+D) 即可继续向下同时选中下一个相同的文本进行同时编辑;

鼠标选中文本,按下 Alt+F3 (Win) 或 Ctrl+Command+G(Mac) 即可一次性选择全部的相同文本进行同时编辑;

Shift+鼠标右键 (Win) 或 Option+鼠标左键 (Mac) 或使用鼠标中键可以用鼠标进行竖向多行选择;

Ctrl+鼠标左键(Win) 或 Command+鼠标左键(Mac) 可以手动选择同时要编辑的多处文本

类似的技巧还有很多,求大家补充……

Shift+鼠标右键轻松实现多行编辑,批量给变量加前缀了

雷电般快速的文件切换:

如果你同时打开了多个文件,或者你的项目里经常需要编辑不同的文件,在文件数量较多的时候,在过去往往需要花费很多的精力去寻找,很是烦人。而现

在,Sublime Text 2 里只需按下 Ctrl+P(Win) 或 Shift+Command+P(Mac)

即可调出文件切换面板,接着你只需输入文件名,回车后即可瞬间切换过去!并且它支持模糊匹配,只需输入你记得的一部分即可,譬如我想要找一个

“”的文件来编辑,那么你只需要输入“ipl”或者是”ips.c”这样的字符都能匹配出来,这个特性非常非

常的棒!

图中 ca 匹配了 capabilities.php 和 classese.php,选择就能快速切换

类似的功能,我只在类似 Eclipse

等大型(笨重)的IDE中才见到过,然而小巧快速的编辑器中,我还是首次遇到。使用这个功能,你除了可以在已打开的文件中切换之外,如果你使用项目管理

(将一个文件夹设置成一个项目),它还能懂得去搜索匹配项目文件夹下未被打开过的文件。现在你还需要用鼠标去一个一个点标签页来切换吗?你还要打开“我的

电脑”慢慢在各个不同文件夹去找需要编辑的文件吗?使用ST2,你只需输入几个字符即可~只有一句话:前所未有的方便!

随心所欲的跳转:快速罗列与定位函数/HTML的元素、跳转到指定行

使用上面介绍的快速文件切换功能,可以很轻易地打开/切换到自己想要编辑的文档了,

但如果这个文件的代码很长很长,想要轻松跳到要编辑的地方又有什么好方法呢? Sublime Text 2 早就帮你想好了,同样是按下前面所说的

Ctrl+P(Win) 或 Shift+Command+P(Mac),这次试试先输入一个

@ 号看看?嗯,好样的!这列表马上帮你罗列出这文件里全部的 Function

了!同样使用模糊匹配,快速输入几个关键字,马上就能定位到那个Function去了!!!在需要不停在多个Function之间跳转的时候这个功能尤显

实用~妈妈再也不用担心我找函数找到蛋疼了!当你编辑的是HTML时,这货给你罗列的则是HTML的各个ID元素,相信搞前端的同学们都鸡冻了吧。

Ctrl+P之后输入@号或者 直接按Ctrl+R,即可列出该文件里的全部function

输入@号开始有此般神奇功效,那么再试试输入一个英文冒号 :

开始吧,然后再输入一个数字,嗯,这次则可以跳到指定的行数了;输入一个#号开始,可以罗列/搜索文本;而且你还可以使用更快速的快捷键,譬如快速列出

/跳转函数就是 Ctrl+R (Mac下是Command+R),它完全等同于Ctrl+P之后输入@;跳转到指定行号是 Ctrl+G

(Mac是Command+G)。

而且更让人叫绝的是,这些切换定位方法你还可以配合在一起使用!譬如我有一个名为”hello-iplaysoft.js”的文件,里面其中有一个function叫做”visit_iplaysoft_com”,我现在想要编辑这个函数,那么我只需按下

Ctrl+P,然后输入“heip@vi”回车(模糊匹配,注意前面有颜色的字符),ST2 马上就给我到打开这个文件并定位进去了!够方便了吧?!熟记这几个快捷键,你可以很一气呵成地进行文件切换和编辑,你会发现世界更美好哦亲……

集所有功能于一身的命令面板:

Sublime Text 2 的一大特色是拥有一个相当强大的命令面板,它几乎无所不能!任何时候,按下 Ctrl+Shift+P(Win) 或

Command+Shift+P(Mac) 即可调出。利用它,你可以实现很多很多很多很多很多功能,例如“Set

Syntax:PHP”即可将当前文档设置成PHP语法高亮;“Convert Case: Swap

Case”可以将选中的文本大小写反转;“File: Save All”可以一次保存全部文件;“File: Close

All”一次关闭全部文件等等……而且,这里的列表一样支持模糊匹配(这货真心是个好东西啊!)。因为这里面命令实在太多了,覆盖的作用范围也很广,我这

里实在不能一一介绍,大家如果有兴趣,可以经常调个面板出来看看列表中都有些什么命令,多多去了解、尝试、再慢慢消化,相信它会让你再也离不开它。

强大的命令面板,可以在这里调用一切SublimeText提供的功能

Package Control(绝不可错过的扩展包管理器)

Sublime Text 2 除了自身拥有无数实用功能和特性之外,它还能安装使用各种扩展/皮肤/配色方案等来增强自己。现在介绍的这个 Package Control 可以看做是一个ST2的扩展管理器,使用它,你可以用非常神奇、非常简单方便的方法去下载、安装、删除

Sublime Text 2 的各种插件、皮肤等,相信我,想更好地使用 ST2 绝对不能没有它!不过 ST2 本身并没有自带这个工具,我们需要自行安装它,方法很简单:

1、在 SublimeText2 的目录里面找到 Data Installed Packages 的文件夹 (如没有请手动新建)

2、在这里下载 Package Control.sublime-package 文件

3、将下载到的文件放进去 Installed Packages 里面

4、重新启动 Sublime Text 即可

如果 Package Control 已经安装成功,那么 Ctrl+Shift+P 调用命令面板,我们就会找到一些以“Package

Control:”开头的命令,我们常用到的就是几个 Install Package (安装扩展)、List Packages

(列出全部扩展)、Remove Package (移除扩展)、Upgrade Package

(升级扩展)。但如果你按照上面的方法确实搞不定,可以试试按键盘 Ctrl+~

(数字1左边的按键)调出控制台,然后拷贝下面的代码进去并回车,它会自动帮你新建文件夹并下载文件的,与上面的方法最终效果是一样的:

import urllib2,os;

pf='Package Control.sublime-package';

ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not

os.path.exists(ipp) else None;

urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));

open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen(''+pf.replace('

','%20')).read()); print 'Please restart Sublime Text to finish

installation'

成功安装 Package Control 之后,在命令面板里会出现以其命名开头的一系列命令

在命令面板输入 “Package Control: Install

Package“即会列出全部可以安装的扩展(必需连接网络,如下图),从列表可以看到,4GL、AAAPackageDev

那些就是插件的名称,选择它们就可以进行下载安装了。从该列表可以看到,目前ST2的各种扩展已经非常丰富了!此外,你还可以在这里看到

Web 版的扩展列表和详细的说明(这俩列表的数据应该是同步的。在截稿为止 2012-7-8,这里已经收集了482个扩展包了)

我这里以安装“JsFormat”插件为例,简单介绍一下 SublimeText 里面怎样安装与使用插件吧。JsFormat

的功能就是可以将一些凌乱的 JavaScript 代码重新排版,以方便更好地阅读与编辑。使用 Ctrl+Shift+P

调用命令面板,输入“Package Control: Install

Package”(安装扩展包),在插件列表中选择安装“JsFormat”(可以输入字符过滤),待提示成功之后即已完成安装。随便打开一个js文件

(最好是换行、对齐特别凌乱的那种),按下 Ctrl+Shift+P

调用命令面板,你会发现已经多了一项命令叫做“Format: Javascript”,如图:

使用 JSFormat 插件的 Format: Javascript 命令

使用之后,你的代码瞬间就变整齐了有木有!你也可以使用这个插件的热键“CTRL+ALT+F”进行整理(命令面板右方可以看到)。

使用 JSFormat 之后的 JS 代码效果,注意上图的JS代码是一堆的

当然,不同的扩展,使用的方法与表现的形式都不一样,这个就只能去web版查一下这个插件的一些具体的使用说明了,这里是不能一概而论的。不过大体上,安

装和使用插件就是这么的简单。通过各种插件,你几乎可以实现任何你想要的功能。而且 ST2

也开放了插件API,如果你有能力,也可以试试开发一个,可以参考这里的API文档。本文后面会推荐一些实用的插件。

更换主题或配色方案:

如果你看腻了 SublimeText 的原版皮肤,也可以折腾一下换肤的。譬如下图是一款比较流行的主题 Theme -

Soda,和安装插件基本上一样,使用 Package Control 进入 Install Package

的列表里面找到它进行安装即可。你也可以在网上找到一些 ST2 的主题,下载回来放到安装目录的 Data\Packages

文件夹里面,然后选择切换主题。配色方案的操作也是类似,大家自己研究研究吧,这里不多做介绍了。

另外,SublimeText 还有很给力的一点,就是它能原生支持 TextMate 的 Bundle 和配色方案,同样也是放在 Packages 文件夹里即可使用。TextMate 的 Bundle 和配色方案资源都比较丰富,网上可以找到不少。

送上大城小胖同学制作的 Sublime Text 2 的介绍视频:

这里补充一些我认为不错的插件吧,欢迎大家推荐与补充:

Gits:可以轻松集成 GitHub

SFTP:直接编辑 FTP 或 SFTP 服务器上的文件

ZenCoding:这货对于前端的同学来说不得了,可以超快速编写HTML文件 (视频演示)

ConvertToUTF8:ST2只支持utf8编码,该插件可以显示与编辑 GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS 等编码的文件

Clipboard History:剪切板历史

WordPress:集成一些WordPress的函数,对于像我这种经常要写WP模版和插件的人特别有用!

HtmlTidy:清理与排版你的HTML代码

PHPTidy:整理与排版PHP代码

YUI Compressor:压缩JS和CSS文件

一些补充:

因为 SublimeText 是绿色软件,用户的自定义配置、下载的插件等都是位于软件目录内的,所以一旦你配置好之后,使用 Dropbox、金山快盘之类的同步网盘进行同步(无网络的朋友用U盘也行),去到哪里运行都是自己的配置,非常方便!以后大家在不同的电脑上工作相信也能很顺手了。

另外,很多朋友反映表示打开中文会有乱码,其实是因为ST2本身只支持UTF-8编码,而我们常遇到的中文文件可能是GBK或者GB2312等编码,解决方法是安装一个 ConvertToUTF8 或者 GBK Encoding Support 插件即可完美解决,这个并不是什么大问题。

写在后面:

之前我一直使用的编辑器是 EditPlus,至少有4年+了吧,主要的原因是它的启动迅速和长久以来使用已经习惯了,但这次在试用后我毫不犹豫叛变到 SublimeText2 来了!从各种使用体验来说,ST2 给人最多的感觉就是“快”和“流畅”。“快”就像 Chrome

浏览器与其他一般浏览器的比那样,启动速度让人非常满意;“流畅”就是当你熟悉了它的一些快捷操作之后,编辑文档时那种不需打乱思绪的行云流水

般的操作,非常让人有成就感!作为一款功能、扩展性如此强大,可配置性如此自由的软件,能做到速度如此之快实属极致了,想想看那些大型笨重的IDE们吧,

你就恨不得马上去告诉所有人世界上还有 SublimeText 这样的神器~

Sublime Text 2 比 TextMate 在跨平台和软件更新上有很大优势,比另一款同样是神器级别的编辑器 VIM 入门又简单得多,比各大IDE又要轻巧快速,比网上大部分的编辑器功能和扩展性上要强,而且暗色系的界面也很酷很讨好人,可以说是目前除VIM、emacs外又一个代码编辑器的最佳选择了!

如何用R语言爬取网页表格数据节省一天工作时间

方法/步骤fromurllib.requestimporturlopen用于打开网页fromurllib.errorimportHTTPError用于处理链接异常frombs4importBeautifulSoup用于处理html文档importre用正则表达式匹配目标字符串例子用关于抓取百度新闻网页的某些图片链接fromurllib.requestimporturlopenfromurllib.errorimportHTTPErrorfrombs4importBeautifulSoupimportreurl="/"try:html=urlopen(url)exceptHTTPErrorase:print(e)try:bsObj=BeautifulSoup(html.read())images=bsObj.findAll("img",{"src":re.compile(".*")})forimageinimages:print(image["src"])exceptAttributeErrorase:print(e)importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.HttpURLConnection;importjava.net.MalformedURLException;importjava.net.URL;publicclassCapture{publicstaticvoidmain(String[]args)throwsMalformedURLException,IOException{StringstrUrl="/";URLurl=newURL(strUrl);HttpURLConnectionhttpConnection=(HttpURLConnection)url.openConnection();InputStreamReaderinput=newInputStreamReader(httpConnection.getInputStream(),"utf-8");BufferedReaderbufferedReader=newBufferedReader(input);Stringline="";StringBuilderstringBuilder=newStringBuilder();while((line=bufferedReader.readLine())!=null){stringBuilder.append(line);}Stringstring=stringBuilder.toString();intbegin=string.indexOf("");intend=string.indexOf("");System.out.println("IPaddress:"+string.substring(begin,end));}

urllib2.urlopen 请求 url 取得数据之后需要显式的 close 吗

urllib2.urlopen 请求 url 取得数据之后需要显式的 close

使用Intellij Idea创建gradle项目

首先在Idea中启用Gradle支持:Settings-Plugins: Gradle

然后创建一个gradle项目或模块,会发现目录结构和maven的很像,其中build.gradle是gradle的配置文件,类似于maven中pom.xml文件,以下是build.gradle的简单示例:

apply plugin: 'java'

group = 'org.yousharp'

version = '1.0-SNAPSHOT'

sourceCompatibility = 1.7

targetCompatibility = 1.7

repositories {

mavenCentral()

maven { url "repo.maven.apache.org/maven2" }

}

dependencies {

compile group: 'com.google.guava', name: 'guava', version:'17.0'

compile group: 'redis.clients', name: 'jedis', version:'2.6.0'

testCompile group: 'junit', name: 'junit', version:'4.11'

}

北大青鸟java培训:java编程工程师的开发环境怎么设置?

为一个互联网编程师,每个人都有不同的编程工具,也就是适合自己使用的开发环境,不同的工程师采用的编程环境都是不一样的。

每个人都有自己高效的开发环境,而代码编辑器又是最经常用的,java课程发现现在有非常多的代码编辑器可以供你选择,比如SublimeText、Notepad++、Emac、Vim等等。

其实我觉的并没有哪个编辑器是更好的,只有哪个是更适合你的,比如我最开始我用的是Adobe的Dreamweaver,但是对我来说感觉它实在太臃肿了,用了几次就没用过了,所以后来我选择了Notepad++,因为它非常的方便和小巧,只有几M的大小。

一开始编写HTML和CSS时都是一行一行的纯手打,后来发现这样效率实在太低了,后来发现一款可以高效编写HTML和CSS的插件ZenCoding(现在叫Emmet了),比如原来我要实现下面这种结构我需要自己先打出一行来然后复制粘贴,但这又是非常重复性的写得不能再多的结构。

现在只需编写一行按一定语法嵌套的代码然后要按住Ctrl+E就可以生成上面这种代码了。

再比如要编写HTML的头部,基本上我都是复制粘贴的,效率低,现在只需要编写短短的html:5然后按住Ctrl+E就可以生成基本的非常规范的HTML头部。

适当的使用插件可以大大的提高我的开发效率,后来我觉得自己并不是很喜欢Notepad++的主题样式和代码高亮颜色等等,也没有找到好看的主题,还有就是安装插件也不是很方便,所以又开始寻找更适合自己的代码编辑器,当找到并使用SublimeText后,感觉自己就像发现了新大陆,这里主题、插件无数,有各种的选择,虽然我觉得不能以主题样式等等这些外在的东西去看待一个编辑器,但谁不希望盯着一个喜欢的女神看是不是,反正我每次看着编辑界面心情就一片大好,然后效率就大大提升了,这个纯属个人喜好。

对主题样式说了这么多,就顺便提一下我用的是哪个主题样式,我用的主题是itg.flat,但我并不喜欢它的代码高亮样式,所以我用了Spacegray主题的代码高量样式,然后把左上角的难看的Tab切换小三角去掉,然后每次便携代码的时候就全屏模式,屏蔽干扰,提高效率。

这些都是纯属个人喜好,文艺一点说就是完美主义者,2B一点说就是有强迫症。

然后不得不说的一个是SublimeText安装主题和插件非常方便,就是使用PackageControl组件来安装,当然在使用PackageControl来安装插件之前首先你得先安装PackageControl组件,先Ctrl+`调出Console,然后复制下面代码(适用于SublimeText3)到Console回车:importurllib2,os;pf='PackageControl.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen(''+pf.replace('','%20')).read());print('PleaserestartSublimeTexttofinishinstallation')然后重启SublimeText,查看Perferences菜单下面的PackageSettings中有没有PackageControl,有的话就安装成功,反之失败。

关于javaurlopen和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-02,除非注明,否则均为首码项目网原创文章,转载请注明出处。