小编Ada*_*tan的帖子

makefile中.PHONY的目的是什么?

.PHONYMakefile 中的含义是什么?我已经完成了这个,但它太复杂了.

有人可以用简单的语言向我解释一下吗?

makefile phony-target

1535
推荐指数
10
解决办法
36万
查看次数

Python中的mkdir -p功能

有没有办法mkdir -p在Python中获得类似于shell的功能.我正在寻找除系统调用之外的解决方案.我确信代码少于20行,我想知道是否有人写过它?

python mkdir

756
推荐指数
9
解决办法
37万
查看次数

PostgreSQL:text和varchar之间的区别(字符变化)

text数据类型和character varying(varchar)数据类型之间有什么区别?

根据文件

如果在没有长度说明符的情况下使用字符变化,则该类型接受任何大小的字符串.后者是PostgreSQL扩展.

此外,PostgreSQL提供了文本类型,它存储任意长度的字符串.虽然类型文本不在SQL标准中,但是其他几个SQL数据库管理系统也有它.

那有什么区别?

string postgresql varchar text types

558
推荐指数
9
解决办法
28万
查看次数

从子目录导入文件?

我有一个名为的文件tester.py,位于/project.

/project有一个名为的子目录lib,其文件名为BoxTime.py:

/project/tester.py
/project/lib/BoxTime.py
Run Code Online (Sandbox Code Playgroud)

我想导入BoxTimetester.我试过这个:

import lib.BoxTime
Run Code Online (Sandbox Code Playgroud)

结果如下:

Traceback (most recent call last):
  File "./tester.py", line 3, in <module>
    import lib.BoxTime
ImportError: No module named lib.BoxTime
Run Code Online (Sandbox Code Playgroud)

任何想法如何BoxTime从子目录导入?

编辑

__init__.py是问题,但不要忘了提及BoxTime作为lib.BoxTime,或使用:

import lib.BoxTime as BT
...
BT.bt_function()
Run Code Online (Sandbox Code Playgroud)

python module python-import subdirectory

415
推荐指数
9
解决办法
43万
查看次数

如何在不使用try/except的情况下检查字符串是否表示int?

有没有办法判断一个字符串是否代表一个整数(例如'3','-17'但不是'3.14''asfasfas')没有使用try/except机制?

is_int('3.14') = False
is_int('-7')   = True
Run Code Online (Sandbox Code Playgroud)

python string integer

413
推荐指数
12
解决办法
49万
查看次数

如何在python解释器中执行文件?

我正在尝试使用解释器中的python命令执行文件.

编辑:我正在尝试使用该文件中的变量和设置,而不是调用单独的进程.

python

266
推荐指数
11
解决办法
58万
查看次数

在Python中,如何将自纪元以来的秒数转换为`datetime`对象?

time从epoch开始,模块可以使用秒进行初始化:

>>> import time
>>> t1=time.gmtime(1284286794)
>>> t1
time.struct_time(tm_year=2010, tm_mon=9, tm_mday=12, tm_hour=10, tm_min=19, 
                 tm_sec=54, tm_wday=6, tm_yday=255, tm_isdst=0)
Run Code Online (Sandbox Code Playgroud)

有一种优雅的方式以datetime.datetime相同的方式初始化对象吗?

python time datetime date epoch

220
推荐指数
5
解决办法
22万
查看次数

Python:添加列表来设置?

在Python 2.6解释器上测试:

>>> a=set('abcde')
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> l=['f','g']
>>> l
['f', 'g']
>>> a.add(l)
Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    a.add(l)
TypeError: list objects are unhashable
Run Code Online (Sandbox Code Playgroud)

我认为我无法将列表添加到集合中,因为Python无法判断如果我已经两次添加相同的列表.有解决方法吗?

编辑:我想添加列表本身,而不是其元素.

python list set

209
推荐指数
9
解决办法
26万
查看次数

如何根据任意条件函数过滤字典?

我有点词典,说:

>>> points={'a':(3,4), 'b':(1,2), 'c':(5,5), 'd':(3,3)}
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的字典,其中包含x和y值小于5的所有点,即点'a','b'和'd'.

根据该书,每个字典都有items()函数,它返回一个(key, pair) 元组列表:

>>> points.items()
[('a', (3, 4)), ('c', (5, 5)), ('b', (1, 2)), ('d', (3, 3))]
Run Code Online (Sandbox Code Playgroud)

所以我写了这个:

>>> for item in [i for i in points.items() if i[1][0]<5 and i[1][1]<5]:
...     points_small[item[0]]=item[1]
...
>>> points_small
{'a': (3, 4), 'b': (1, 2), 'd': (3, 3)}
Run Code Online (Sandbox Code Playgroud)

有更优雅的方式吗?我期待Python有一些超级棒的dictionary.filter(f)功能......

python dictionary filter

190
推荐指数
7
解决办法
18万
查看次数

python:将脚本工作目录更改为脚本自己的目录

我每分钟从crontab运行一个python shell:

* * * * * /home/udi/foo/bar.py
Run Code Online (Sandbox Code Playgroud)

/home/udi/foo有一些必要的子目录,比如/home/udi/foo/log/home/udi/foo/config,/home/udi/foo/bar.py指的是.

问题是crontab从不同的工作目录运行脚本,因此尝试打开./log/bar.log失败.

有没有一种很好的方法告诉脚本将工作目录更改为脚本自己的目录?我想要一个适用于任何脚本位置的解决方案,而不是明确地告诉脚本它在哪里.

编辑:

os.chdir(os.path.dirname(sys.argv[0]))
Run Code Online (Sandbox Code Playgroud)

是最紧凑的优雅解决方案.感谢您的回答和解释!

python working-directory

153
推荐指数
4
解决办法
15万
查看次数