在"C Primer Plus"的示例中,作者使用了%ul格式说明符(在scanf和printf中)用于unsigned long.当我尝试概括问题时,似乎%ul在我的计算机中出错了.但使用%lu解决了这个问题.
实际上,我不想关注问题和代码行,而是想知道%ul和之间的区别%lu.也许我可以弄清楚出了什么问题.
搜索并没有给我一些有用的东西(除了"它们是不同的").
任何解释或链接/参考表示赞赏.
屏幕抓取一些网站时,我从<script>标签中提取数据.
我得到的数据不是标准JSON格式.我不能用json.loads().
# from
js_obj = '{x:1, y:2, z:3}'
# to
py_obj = {'x':1, 'y':2, 'z':3}
Run Code Online (Sandbox Code Playgroud)
目前,我regex用来将原始数据转换为JSON格式.
但是当我遇到复杂的数据结构时,我感觉非常糟糕.
你有更好的解决方案吗?
我正在尝试安装setuptools包含console_scripts在Windows 7上的软件包.我正在尝试将我的值更改PYTHONUSERBASE为安装到带有--user标志的自定义目录中.如果我在值中使用反斜杠PYTHONUSERBASE,如
set PYTHONUSERBASE=C:\testing
Run Code Online (Sandbox Code Playgroud)
一切正常.但是,如果我使用正斜杠,就像在
set PYTHONUSERBASE=C:/testing
Run Code Online (Sandbox Code Playgroud)
软件包本身安装到正确的位置,但是console_scripts(并且只有console_scripts)安装到C:testing\Scripts.显然,当存在正斜杠时,setuptools将路径视为仅用于console_scripts路径的相对路径.在我的真实包中,我正在从配置文件中读取值,所以我真的不必处理规范化路径分隔符,因为它也需要在Linux上工作.为了测试,我有一个包含该结构的包
|-- setup.py
|-- foobar\
|---- __init__.py
|---- __main__.py
Run Code Online (Sandbox Code Playgroud)
中的代码__main__.py是
def main(): print('This is the main function')
Run Code Online (Sandbox Code Playgroud)
和setup.py看起来像:
from setuptools import setup
setup(
name='foobar',
version='1.0.0',
packages=['foobar'],
entry_points={
'console_scripts': [
'foobar=foobar.__main__:main',
],
},
)
Run Code Online (Sandbox Code Playgroud)
为什么要setuptools删除路径中的第一个正斜杠,我该如何解决?我认为这个问题与我的问题有关,但我认为它不能解决它:Windows上的Python os.path.join
我理解python中函数的装饰器(我可能错了)的方法是,它们应该添加副作用并修改函数的返回值.现在装饰器被添加到要装饰的函数的函数定义之上或通过赋值.这是一个小例子:
def print_args_decor(function):
def wrapper(*args, **kwargs):
print 'Arguments:', args, kwargs # Added side-effect
return function(*args, **kwargs)*5 # Modified return value
return wrapper
@print_args_decor
def do_stuff(strg, n=10):
"""Repeats strg a few times."""
return strg * n
new_decorated_func = print_args_decor(do_stuff) # Decoration by assignment
print do_stuff('a', 2) # Output: aaaaaaaaaa
Run Code Online (Sandbox Code Playgroud)
现在,如何将装饰器附加到其他地方定义的函数,理想情况下保留原始函数的名称和文档字符串(如同functools.wraps)?例如,我sqrt()从Python的数学模块导入函数,并想要装饰它,我该怎么做呢?
from functools import wraps
from math import sqrt
def print_args_decor(function):
@wraps(function)
def wrapper(*args, **kwargs):
print 'Arguments:', args, kwargs # Added side-effect
return function(*args, …Run Code Online (Sandbox Code Playgroud) 我有一个5列的csv文件,我想在第6列添加数据.我拥有的数据是一个数组.
现在,我所拥有的代码只会在csv文件中已经存在的所有数据之后插入我想要的第6列数据.
比如我有:
wind, site, date, time, value
10, 01, 01-01-2013, 00:00, 5.1
89.6 ---> this is the value I want to add in a 6th column but it puts it after all the data from the csv file
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码:
csvfile = 'filename'
with open(csvfile, 'a') as output:
writer = csv.writer(output, lineterminator='\n')
for val in data:
writer.writerow([val])
Run Code Online (Sandbox Code Playgroud)
我认为使用'a'会将数据附加到一个新列中,但它只是将它放在('下')所有其他数据之后......我不知道该怎么办!
我需要保存一个情节.这是我的代码,我不知道为什么它不起作用.
hold on;
plot(x1, y2)
plot(x1, y2)
print -djpg image.jpg
Run Code Online (Sandbox Code Playgroud)
屏幕输出中的图是正确的,但文件中的输出是不同的:它只保存没有我的点的空图.
这是我在文件中的输出:

使用pytests覆盖是一个非常有用的工具.
Html报告允许很好的输出,但是通过命令行,找不到修改默认输出目录的选项(htmlcov)
示例命令行:
python -m pytest lib_being_tested\tests --cov lib_being_tested.module --cov-report=html
Run Code Online (Sandbox Code Playgroud) 我已经为Windows安装了Anaconda 2.2.0并通过以下方式创建了一个虚拟环境:
> conda create -n my-env anaconda
Run Code Online (Sandbox Code Playgroud)
环境是成功创建的,我在我的envinronments列表中看到它(实际上目录在Anaconda\envs ..)
> conda info -e
# conda environments:
#
my-env D:\Anaconda\envs\my-env
root * D:\Anaconda
Run Code Online (Sandbox Code Playgroud)
但是,当运行activate.bat脚本来切换envinronment时,虽然看起来成功但实际上并没有进行切换:
> activate.bat my-env
Activating environment "astropy-dev"...
> conda list -e
# conda environments:
#
my-env D:\Anaconda\envs\my-env
root * D:\Anaconda
Run Code Online (Sandbox Code Playgroud)
随着*指示活跃的环境.
我在Windows上看到了conda激活的一些问题,但没有发现这个特定的问题.
有关详细信息:我希望复制整个Anaconda软件包分发版,然后在一个软件包上安装开发版.
从文档中,我不清楚自定义规则和自定义验证器的用例有何不同.在文档中给出的示例中,唯一的区别是一个额外的if语句,用于检查is_odd自定义规则中的值.我应该何时更喜欢自定义规则,何时应该更喜欢自定义验证器?
自定义规则
schema = {'amount': {'isodd': True, 'type': 'integer'}}
from cerberus import Validator
class MyValidator(Validator):
def _validate_isodd(self, isodd, field, value):
""" Test the oddity of a value.
The rule's arguments are validated against this schema:
{'type': 'boolean'}
"""
if isodd and not bool(value & 1):
self._error(field, "Must be an odd number")
Run Code Online (Sandbox Code Playgroud)
自定义验证器
from cerberus import Validator
schema = {'amount': {'validator': 'oddity'}}
class AValidator(Validator):
def _validator_oddity(self, field, value):
if value & 1:
self._error(field, "Must be …Run Code Online (Sandbox Code Playgroud) 我只是想学习Tensorflow,但我对Python很新,所以我使用Anaconda我创建了一个conda环境:
$ conda create ?n tensorflow python =3.5
Run Code Online (Sandbox Code Playgroud)
当然我激活了我的conda环境
$ source activate tensorflow
Run Code Online (Sandbox Code Playgroud)
然后我在Spyder玩了一下,试图绘制一个MNIST数字(我的导师的复制粘贴代码经过多次测试),当然包括
import matplotlib.pyplot as plt
[...]
plt.plot(number)
Run Code Online (Sandbox Code Playgroud)
但用bash执行Python文件给了我:
(tensorflow) leon@leon-linux:~/ANNsCourse/Session1$ python helloWorld.py
Traceback (most recent call last):
File "helloWorld.py", line 10, in <module>
import matplotlib.pyplot as plt
ImportError: No module named 'matplotlib'
Run Code Online (Sandbox Code Playgroud)
我现在很困惑,因为(tensorflow)在bash中显然表示我的conda tensorflow环境有效(至少从我的理解).另外,根据我的理解,conda应该内置matplotlib,对吧?它还应该在我的conda tensorflow环境中加载它,对吧?这就是我的导师的幻灯片所说的
没有必要安装更多的软件包,如numpy或matplotlib,因为Anaconda已经包含了它们的当前版本.
以及我从Google Googled和StackOverflowed所能获得的东西.谷歌搜索和StackOverflowing都没有给我任何好的答案(也可能只是因为我还不够了解).
我最好的猜测是我仍然需要将matplotlib包含在我的tensorflow conda环境中,但这与我的导师和谷歌相矛盾,而我也不知道如何做到这一点.
编辑:conda list给了我matplotlib不在我的张量流环境中,所以我去了
conda install matplotlib
Run Code Online (Sandbox Code Playgroud)
我仍然担心我的conda tensorflow环境有问题,默认情况下matplotlib不应该在那里吗?它还告诉我:
Package plan for installation in environment /home/leon/.conda/envs/tensorflow:
The following NEW packages will be INSTALLED:
cycler: 0.10.0-py35_0 …Run Code Online (Sandbox Code Playgroud) python ×8
conda ×2
anaconda ×1
c ×1
cerberus ×1
coverage.py ×1
decorator ×1
image ×1
importerror ×1
javascript ×1
json ×1
matplotlib ×1
octave ×1
plot ×1
pytest ×1
python-2.7 ×1
save ×1
setuptools ×1
tensorflow ×1
web-scraping ×1
windows ×1