全局格式修正。

This commit is contained in:
XiongNeng
2015-12-28 19:34:04 +08:00
parent 0bb36ff87e
commit fa087b056e
254 changed files with 0 additions and 980 deletions

View File

@@ -7,8 +7,6 @@
----------
现在有一个包含N个元素的元组或者是序列怎样将它里面的值解压后同时赋值给N个变量
|
----------
解决方案
----------
@@ -56,8 +54,6 @@
ValueError: need more than 2 values to unpack
>>>
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ``ValueError``
那么怎样才能从这个可迭代对象中解压出N个元素出来
|
----------
解决方案
----------
@@ -59,8 +57,6 @@ Python的星号表达式可以用来解决这个问题。比如你在学习
>>> current
3
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
在迭代操作或者其他操作的时候,怎样只保留最后有限几个元素的历史记录?
|
----------
解决方案
----------
@@ -36,8 +34,6 @@
print(line, end='')
print('-' * 20)
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
怎样从一个集合中获得最大或者最小的N个元素列表
|
----------
解决方案
----------
@@ -38,8 +36,6 @@ heapq模块有两个函数``nlargest()`` 和 ``nsmallest()`` 可以完美解
译者注:上面代码在对每个元素进行对比的时候,会以 ``price`` 的值进行比较。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
怎样实现一个按优先级排序的队列? 并且在这个队列上面每次pop操作总是返回优先级最高的那个元素
|
----------
解决方案
----------
@@ -59,8 +57,6 @@
仔细观察可以发现,第一个 ``pop()`` 操作返回优先级最高的元素。
另外注意到如果两个有着相同优先级的元素( ``foo````grok`` )pop操作按照它们被插入到队列的顺序返回的。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
怎样实现一个键对应多个值的字典(也叫 ``multidict`` )
|
----------
解决方案
----------
@@ -58,8 +56,6 @@
但是很多程序员觉得 ``setdefault()`` 用起来有点别扭。因为每次调用都得创建一个新的初始值的实例(例子程序中的空列表[])。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。
|
----------
解决方案
----------
@@ -38,8 +36,6 @@
'{"foo": 1, "bar": 2, "spam": 3, "grok": 4}'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
怎样在数据字典中执行一些计算操作(比如求最小值、最大值、排序等等)
|
----------
解决方案
----------
@@ -52,8 +50,6 @@
print(min(prices_and_names)) # OK
print(max(prices_and_names)) # ValueError: max() arg is an empty sequence
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)
|
----------
解决方案
----------
@@ -49,8 +47,6 @@
c = {key:a[key] for key in a.keys() - {'z', 'w'}}
# c is {'x': 1, 'y': 2}
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
怎样在一个序列上面保持元素顺序的同时消除重复的值?
|
----------
解决方案
----------
@@ -56,8 +54,6 @@
如果你想基于单个字段、属性或者某个更大的数据结构来消除重复元素,第二种方案同样可以胜任。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你的程序已经出现一大堆已无法直视的硬编码切片下标,然后你想清理下代码。
|
----------
解决方案
----------
@@ -30,8 +28,6 @@
第二种版本中,你避免了大量无法理解的硬编码下标,使得你的代码更加清晰可读了。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
怎样找出一个序列中出现次数最多的元素呢?
|
----------
解决方案
----------
@@ -32,8 +30,6 @@
print(top_three)
# Outputs [('eyes', 8), ('the', 5), ('look', 4)]
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你有一个字典列表,你想根据某个或某几个字典字段来排序这个列表。
|
----------
解决方案
----------
@@ -63,8 +61,6 @@
{'fname': 'Big', 'uid': 1004, 'lname': 'Jones'},
{'fname': 'Brian', 'uid': 1003, 'lname': 'Jones'}]
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想排序类型相同的对象,但是他们不支持原生的比较操作。
|
----------
解决方案
----------
@@ -41,8 +39,6 @@
[User(3), User(23), User(99)]
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你有一个字典或者实例的序列,然后你想根据某个特定的字段比如 ``date`` 来分组迭代访问。
|
----------
解决方案
----------
@@ -61,8 +59,6 @@
{'date': '07/04/2012', 'address': '5148 N CLARK'}
{'date': '07/04/2012', 'address': '1039 W GRANVILLE'}
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你有一个数据序列,想利用一些规则从中提取出需要的值或者是缩短序列
|
----------
解决方案
----------
@@ -58,8 +56,6 @@
# Outputs ['1', '2', '-3', '4', '5']
``filter()`` 函数创建了一个迭代器,因此如果你想得到一个列表的话,就得像示例那样使用 ``list()`` 去转换。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想构造一个字典,它是另外一个字典的子集。
|
----------
解决方案
----------
@@ -29,8 +27,6 @@
tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
p2 = {key: value for key, value in prices.items() if key in tech_names}
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你有一段通过下标访问列表或者元组中元素的代码,但是这样有时候会使得你的代码难以阅读,
于是你想通过名称来访问元素。
|
----------
解决方案
----------
@@ -74,8 +72,6 @@
total += s.shares * s.price
return total
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你需要在数据序列上执行聚集函数(比如 ``sum()`` , ``min()`` , ``max()`` )
但是首先你需要先转换或者过滤数据
|
----------
解决方案
----------
@@ -44,8 +42,6 @@
]
min_shares = min(s['shares'] for s in portfolio)
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作,
比如查找值或者检查某些键是否存在。
|
----------
解决方案
----------
@@ -31,8 +29,6 @@
print(c['y']) # Outputs 2 (from b)
print(c['z']) # Outputs 3 (from a)
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。
|
----------
解决方案
----------
@@ -23,8 +21,6 @@
>>> re.split(r'[;,\s]\s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要通过指定的文本模式去检查字符串的开头或者结尾比如文件名后缀URL Scheme等等。
|
----------
解决方案
----------
@@ -70,8 +68,6 @@
True
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想使用 **Unix Shell** 中常用的通配符(比如 ``*.py`` , ``Dat[0-9]*.csv`` 等)去匹配文本字符串
|
----------
解决方案
----------
@@ -72,8 +70,6 @@
['5412 N CLARK ST']
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想匹配或者搜索特定模式的文本
|
----------
解决方案
----------
@@ -135,8 +133,6 @@
('3', '13', '2013')
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想在字符串中搜索和匹配指定的文本模式
|
----------
解决方案
----------
@@ -71,8 +69,6 @@
2
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要以忽略大小写的方式搜索与替换文本字符串
|
----------
解决方案
----------
@@ -52,8 +50,6 @@
译者注: ``matchcase('snake')`` 返回了一个回调函数(参数必须是 ``match`` 对象),前面一节一节提到过,
``sub()`` 函数除了接受替换字符串外,还能接受一个回调函数。
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你正在试着用正则表达式匹配某个文本模式,但是它找到的是模式的最长可能匹配。
而你想修改它变成查找最短的可能匹配。
|
----------
解决方案
----------
@@ -42,8 +40,6 @@
这样就使得匹配变成非贪婪模式,从而得到最短的匹配,也就是我们想要的结果。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你正在试着使用正则表达式去匹配一大块的文本,而你需要跨越多行去匹配。
|
----------
解决方案
----------
@@ -41,8 +39,6 @@
在这个模式中, ``(?:.|\n)`` 指定了一个非捕获组
(也就是它定义了一个仅仅用来做匹配,而不能通过单独捕获或者编号的组)。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你正在处理Unicode字符串需要确保所有字符串在底层有相同的表示。
|
----------
解决方案
----------
@@ -72,8 +70,6 @@ Python同样支持扩展的标准化形式NFKC和NFKD它们在处理某些字
'fi'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你正在使用正则表达式处理文本但是关注的是Unicode字符处理。
|
----------
解决方案
----------

View File

@@ -7,8 +7,6 @@
----------
你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
|
----------
解决方案
----------
@@ -34,8 +32,6 @@
'hello'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
一些无聊的幼稚黑客在你的网站页面表单中输入文本"pýtĥöñ",然后你想将这些字符清理掉。
|
----------
解决方案
----------
@@ -97,8 +95,6 @@
这里的标准化操作将原来的文本分解为单独的和音符。接下来的ASCII编码/解码只是简单的一下子丢弃掉那些字符。
当然这种方法仅仅只在最后的目标就是获取到文本对应ACSII表示的时候生效。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想通过某种对齐方式来格式化字符串
|
----------
解决方案
----------
@@ -77,8 +75,6 @@
' 1.23 '
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想将几个小的字符串合并为一个大的字符串
|
----------
解决方案
----------
@@ -59,8 +57,6 @@
'HelloWorld'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想创建一个内嵌变量的字符串,变量被它的值所表示的字符串替换掉。
|
----------
解决方案
----------
@@ -98,8 +96,6 @@ Python并没有对在字符串中简单替换变量值提供直接的支持。
Your favorite color is {color}
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你有一些长字符串,想以指定的列宽将它们重新格式化。
|
----------
解决方案
----------
@@ -49,8 +47,6 @@
the eyes, look into my eyes, you're
under.
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你想将HTML或者XML实体如 ``&entity;````&#code;`` 替换为对应的文本。
再者,你需要转换文本中特定的字符(比如<, >, 或 &)。
|
----------
解决方案
----------
@@ -60,8 +58,6 @@
'The prompt is >>>'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你有一个字符串,想从左至右将其解析为一个令牌流。
|
----------
解决方案
----------
@@ -103,8 +101,6 @@
for tok in tokens:
print(tok)
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你想根据一组语法规则解析文本并执行命令,或者构造一个代表输入的抽象语法树。
如果语法非常简单,你可以自己写这个解析器,而不是使用一些框架。
|
----------
解决方案
----------
@@ -213,8 +211,6 @@
if __name__ == '__main__':
descent_parser()
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想在字节字符串上执行普通的文本操作(比如移除,搜索和替换)。
|
----------
解决方案
----------
@@ -59,8 +57,6 @@
[b'FOO', b'BAR', b'SPAM']
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想对浮点数执行指定精度的舍入运算。
|
----------
解决方案
----------
@@ -43,8 +41,6 @@
1628000
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要对浮点数执行精确的计算操作,并且不希望有任何小误差的出现。
|
----------
解决方案
----------
@@ -68,8 +66,6 @@
0.76470588235294117647058823529411764705882352941176
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要将数字格式化后输出,并控制数字的位数、对齐、千位分隔符和其他的细节。
|
----------
解决方案
----------
@@ -61,8 +59,6 @@
'The value is 1,234.57'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要转换或者输出使用二进制,八进制或十六进制表示的整数。
|
----------
解决方案
----------
@@ -70,8 +68,6 @@
1234
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你有一个字节字符串并想将它解压成一个整数。或者,你需要将一个大整数转换为一个字节字符串。
|
----------
解决方案
----------
@@ -41,8 +39,6 @@
b'4\x00#\x00\x01\xef\xcd\x00\xab\x90x\x00V4\x12\x00'
>>>
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你写的最新的网络认证方案代码遇到了一个难题,并且你唯一的解决办法就是使用复数空间。
再或者是你仅仅需要使用复数来执行一些计算操作。
|
----------
解决方案
----------
@@ -64,8 +62,6 @@
(-4.829809383269385-5.5920560936409816j)
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想创建或测试正无穷、负无穷或NaN(非数字)的浮点数。
|
----------
解决方案
----------
@@ -37,8 +35,6 @@ Python并没有特殊的语法来表示这些特殊的浮点值但是可以
True
>>>
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你进入时间机器,突然发现你正在做小学家庭作业,并涉及到分数计算问题。
或者你可能需要写代码去计算在你的木工工厂中的测量值。
|
----------
解决方案
----------
@@ -47,8 +45,6 @@
Fraction(15, 4)
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要在大数据集(比如数组或网格)上面执行计算。
|
----------
解决方案
----------
@@ -166,8 +164,6 @@
[ 9, 10, 10, 10]])
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要执行矩阵和线性代数运算,比如矩阵乘法、寻找行列式、求解线性方程组等等。
|
----------
解决方案
----------
@@ -78,8 +76,6 @@
[4]])
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想从一个序列中随机抽取若干元素,或者想生成几个随机数。
|
----------
解决方案
----------
@@ -95,8 +93,6 @@
335837000776573622800628485064121869519521710558559406913275
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要执行简单的时间转换,比如天到秒,小时到分钟等的转换。
|
----------
解决方案
----------
@@ -67,8 +65,6 @@
1
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要查找星期中某一天最后出现的日期,比如星期五。
|
----------
解决方案
----------
@@ -62,8 +60,6 @@ Python的 ``datetime`` 模块中有工具函数和类可以帮助你执行这样
datetime.datetime(2012, 12, 16, 0, 0)
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你的代码需要在当前月份中循环每一天,想找到一个计算这个日期范围的高效方法。
|
----------
解决方案
----------
@@ -51,8 +49,6 @@
2012-08-09
#... and so on...
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你的应用程序接受字符串格式的输入,但是你想将它们转换为 ``datetime`` 对象以便在上面执行非字符串操作。
|
----------
解决方案
----------
@@ -25,8 +23,6 @@
datetime.timedelta(3, 77824, 177393)
>>>
|
----------
讨论
----------

View File

@@ -71,8 +71,6 @@
2013-03-10 03:15:00-05:00
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想遍历一个可迭代对象中的所有元素但是却不想使用for循环。
|
----------
解决方案
----------
@@ -39,8 +37,6 @@
break
print(line, end='')
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你构建了一个自定义容器对象,里面包含有列表、元组或其他可迭代对象。
你想直接在你的这个新容器对象上执行迭代操作。
|
----------
解决方案
----------
@@ -44,8 +42,6 @@
在上面代码中, ``__iter__()`` 方法只是简单的将迭代请求传递给内部的 ``_children`` 属性。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想实现一个自定义迭代模式,跟普通的内置函数比如 ``range()`` , ``reversed()`` 不一样。
|
----------
解决方案
----------
@@ -43,8 +41,6 @@
[0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875]
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想构建一个能支持迭代操作的自定义对象,并希望找到一个能实现迭代协议的简单方法。
|
----------
解决方案
----------
@@ -56,8 +54,6 @@
它首先返回自己本身并迭代每一个子节点并
通过调用子节点的 ``depth_first()`` 方法(使用 ``yield from`` 语句)返回对应元素。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想反方向迭代一个序列
|
----------
解决方案
----------
@@ -37,8 +35,6 @@
要注意的是如果可迭代对象元素很多的话,将其预先转换为一个列表要消耗大量的内存。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想定义一个生成器函数,但是它会调用某个你想暴露给用户使用的外部状态值。
|
----------
解决方案
----------
@@ -45,8 +43,6 @@
for lineno, hline in lines.history:
print('{}:{}'.format(lineno, hline), end='')
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想得到一个由迭代器生成的切片对象,但是标准切片操作并不能做到。
|
----------
解决方案
----------
@@ -44,8 +42,6 @@
19
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们。
|
----------
解决方案
----------
@@ -71,8 +69,6 @@
如果 ``None`` 和3的位置对调意思就是仅仅获取前三个元素恰恰相反
(这个跟切片的相反操作 ``[3:]````[:3]`` 原理是一样的)。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想迭代遍历一个集合中元素的所有可能的排列或组合
|
----------
解决方案
----------
@@ -95,8 +93,6 @@ itertools模块提供了三个函数来解决这类问题。
('c', 'c', 'c')
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想在迭代一个序列的同时跟踪正在被处理的元素索引。
|
----------
解决方案
----------
@@ -71,8 +69,6 @@
如果某个单词在一行中出现过两次,那么这个行号也会出现两次,
同时也可以作为文本的一个简单统计。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想同时迭代多个序列,每次分别从一个序列中取一个元素。
|
----------
解决方案
----------
@@ -67,8 +65,6 @@
(0, 'z')
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想在多个对象执行相同的操作,但是这些对象在不同的容器中,你希望代码在不失可读性的情况下避免写重复的循环。
|
----------
解决方案
----------
@@ -57,8 +55,6 @@
# Process item
...
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你想以数据管道(类似Unix管道)的方式迭代处理数据。
比如,你有个大量的数据需要处理,但是不能将它们一次性放入内存中。
|
----------
解决方案
----------
@@ -113,8 +111,6 @@
bytes = (int(x) for x in bytecolumn if x != '-')
print('Total', sum(bytes))
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想将一个多层嵌套的序列展开成一个单层列表
|
----------
解决方案
----------
@@ -49,8 +47,6 @@
Lewis
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你有一系列排序序列,想将它们合并后得到一个排序序列并在上面迭代遍历。
|
----------
解决方案
----------

View File

@@ -8,8 +8,6 @@
你在代码中使用 ``while`` 循环来迭代处理数据,因为它需要调用某个函数或者和一般迭代模式不同的测试条件。
能不能用迭代器来重写这个循环呢?
|
----------
解决方案
----------

View File

@@ -7,8 +7,6 @@
----------
你需要读写各种不同编码的文本数据比如ASCIIUTF-8或UTF-16编码等。
|
----------
解决方案
----------
@@ -62,8 +60,6 @@ latin-1是字节0-255到U+0000至U+00FF范围内Unicode字符的直接映射。
使用latin-1编码读取一个文件的时候也许不能产生完全正确的文本解码数据
但是它也能从中提取出足够多的有用数据。同时,如果你之后将数据回写回去,原先的数据还是会保留的。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想将 ``print()`` 函数的输出重定向到一个文件中去。
|
----------
解决方案
----------

View File

@@ -7,8 +7,6 @@
----------
你想使用 ``print()`` 函数输出数据,但是想改变默认的分隔符或者行尾符。
|
----------
解决方案
----------
@@ -41,8 +39,6 @@
...
0 1 2 3 4 >>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想读写二进制文件,比如图片,声音文件等等。
|
----------
解决方案
----------
@@ -27,8 +25,6 @@
在读取二进制数据时,需要指明的是所有返回的数据都是字节字符串格式的,而不是文本字符串。
类似的,在写入的时候,必须保证参数是以字节形式对外暴露数据的对象(比如字节字符串,字节数组对象等)。
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你想像一个文件中写入数据,但是前提必须是这个文件在文件系统上不存在。
也就是不允许覆盖已存在的文件内容。
|
----------
解决方案
----------
@@ -30,8 +28,6 @@
如果文件是二进制的,使用 ``xb`` 来代替 ``xt``
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想使用操作类文件对象的程序来操作文本或二进制字符串。
|
----------
解决方案
----------
@@ -44,8 +42,6 @@
b'binary data'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想读写一个gzip或bz2格式的压缩文件。
|
----------
解决方案
----------
@@ -45,8 +43,6 @@
如上所有的I/O操作都使用文本模式并执行Unicode的编码/解码。
类似的,如果你想操作二进制数据,使用 ``rb`` 或者 ``wb`` 文件模式即可。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想在一个固定长度记录或者数据块的集合上迭代,而不是在一个文件中一行一行的迭代。
|
----------
解决方案
----------
@@ -28,8 +26,6 @@
这个例子中的 ``records`` 对象是一个可迭代对象,它会不断的产生固定大小的数据块,直到文件末尾。
要注意的是如果总记录大小不是块大小的整数倍的话,最后一个返回元素的字节数会比期望值少。
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你想直接读取二进制数据到一个可变缓冲区中,而不需要做任何的中间复制操作。
或者你想原地修改数据并将它写回到一个文件中去。
|
----------
解决方案
----------
@@ -45,8 +43,6 @@
11
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想内存映射一个二进制文件到一个可变字节数组中,目的可能是为了随机访问它的内容或者是原地做些修改。
|
----------
解决方案
----------
@@ -88,8 +86,6 @@
m = memory_map(filename, mmap.ACCESS_COPY)
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要使用路径名来获取文件名,目录名,绝对路径等等。
|
----------
解决方案
----------
@@ -42,8 +40,6 @@
('~/Data/data', '.csv')
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想测试一个文件或目录是否存在。
|
----------
解决方案
----------
@@ -58,8 +56,6 @@
'Wed Apr 28 13:10:34 2010'
>>>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想获取文件系统中某个目录下的所有文件列表。
|
----------
解决方案
----------
@@ -52,8 +50,6 @@
pyfiles = [name for name in os.listdir('somedir')
if fnmatch(name, '*.py')]
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想使用原始文件名执行文件的I/O操作也就是说文件名并没有经过系统默认编码去解码或编码过。
|
----------
解决方案
----------
@@ -48,8 +46,6 @@
正如你所见,在最后两个操作中,当你给文件相关函数如 ``open()````os.listdir()``
传递字节字符串时,文件名的处理方式会稍有不同。
|
----------
讨论
----------

View File

@@ -8,8 +8,6 @@
你的程序获取了一个目录中的文件名列表,但是当它试着去打印文件名的时候程序崩溃,
出现了 ``UnicodeEncodeError`` 异常和一条奇怪的消息—— ``surrogates not allowed``
|
----------
解决方案
----------
@@ -25,8 +23,6 @@
except UnicodeEncodeError:
print(bad_filename(filename))
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想在不关闭一个已打开的文件前提下增加或改变它的Unicode编码。
|
----------
解决方案
----------
@@ -39,8 +37,6 @@
这样做可能会中断你的终端,这里仅仅是为了演示而已。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想在文本模式打开的文件中写入原始的字节数据。
|
----------
解决方案
----------

View File

@@ -8,8 +8,6 @@
你有一个对应于操作系统上一个已打开的I/O通道(比如文件、管道、套接字等)的整型文件描述符,
你想将它包装成一个更高层的Python文件对象。
|
----------
解决方案
----------
@@ -38,8 +36,6 @@
f = open(fd, 'wt', closefd=False)
...
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉。
|
----------
解决方案
----------
@@ -85,8 +83,6 @@
...
# Directory and all contents destroyed
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想通过串行端口读写数据,典型场景就是和一些硬件设备打交道(比如一个机器人或传感器)。
|
----------
解决方案
----------
@@ -36,8 +34,6 @@
大多数情况下,简单的串口通信从此变得十分简单。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你需要将一个Python对象序列化为一个字节流以便将它保存到一个文件、存储到数据库或者通过网络传输它。
|
----------
解决方案
----------
@@ -39,8 +37,6 @@
# Restore from a string
data = pickle.loads(s)
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想读写一个CSV格式的文件。
|
----------
解决方案
----------
@@ -103,8 +101,6 @@
f_csv.writeheader()
f_csv.writerows(rows)
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想读写JSON(JavaScript Object Notation)编码格式的数据。
|
----------
解决方案
----------
@@ -47,8 +45,6 @@
with open('data.json', 'r') as f:
data = json.load(f)
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想从一个简单的XML文档中提取数据。
|
----------
解决方案
----------
@@ -61,8 +59,6 @@
很显然,如果你想做进一步的处理,你需要替换 ``print()`` 语句来完成其他有趣的事。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想使用尽可能少的内存从一个超大的XML文档中提取数据。
|
----------
解决方案
----------
@@ -126,8 +124,6 @@
结果是这个版本的代码运行时只需要7MB的内存--大大节约了内存资源。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想使用一个Python字典存储数据并将它转换成XML格式。
|
----------
解决方案
----------
@@ -62,8 +60,6 @@
如果你还想保持元素的顺序,可以考虑构造一个 ``OrderedDict`` 来代替一个普通的字典。请参考1.7小节。
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想读取一个XML文档对它最一些修改然后将结果写回XML文档。
|
----------
解决方案
----------
@@ -88,8 +86,6 @@
</pre>
</stop>
|
----------
讨论
----------

View File

@@ -7,8 +7,6 @@
----------
你想解析某个XML文档文档中使用了XML命名空间。
|
----------
解决方案
----------

Some files were not shown because too many files have changed in this diff Show More