如何将字符串格式的日期转换为与当前时间进行比较?
我试过这个:
import time, datetime
if time.strptime(date.find(text=True), "%a, %d/%m/%Y").now() > datetime.now():
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
ValueError: time data u'Dom, 07/02/2016' does not match format '%a, %d/%m/%Y'
Run Code Online (Sandbox Code Playgroud)
需要有关如何执行此操作的建议.
我需要动态打开一些新的csv文件,具体取决于infile包含的数据.这些csv文件需要具有基于此数据的文件名,因此无法对其进行硬编码.
我正在尝试制作{filename,FILENAME.CSV}的字典,并且遇到以下问题:
if not os.path.exists(filename):
files_dict[filename] = open(filename,'w')
files_dict[filename].write('Test')
Run Code Online (Sandbox Code Playgroud)
if语句工作正常 - 它会愉快地通过infile创建所有必需的csv文件.
它不喜欢写声明:
Traceback (most recent call last):
File "R:\DataTeam\Orange\Landline\Fixed\Websource_Landline_FixedData_SplitIntoAccounts_20110307.py", line 141, in <module>
files_dict[filename].write('Test')
KeyError: 'OBS Fixed 6-65544 - BRICO DEPOT 201005.csv'
Run Code Online (Sandbox Code Playgroud)
有关如何写入已成功创建的这些文件的任何想法?或者有更简单的方法吗?
谢谢,
托尼
据我所知,Python lambda只允许表达式,而不是语句.我有一个案例,我len()在lambda表达式中使用并尝试获取函数调用的返回值的长度.但是,该函数调用有可能返回None,这会中断len().这周围有优雅的方式吗?
例:
def foo(obj_list, field):
return maxk(obj_list, key=lambda obj: len(nested_getattr(obj, field)))
Run Code Online (Sandbox Code Playgroud)
在上面,maxk()是一个max()接受key参数的版本.我正在使用Python 2.4(并且目前不能使用更高的东西),所以我有一个自定义实现max(),需要一个关键参数,来自这里(参见帖子#140122和#140143). nested_getattr()是另一个实用程序函数,其行为类似getattr()但可以获取嵌套在另一个中的属性.这可以从这里获得.
示例函数的作用(这是我用变量/名称改变的实际函数)是通过一个对象列表(obj_list)并比较值的长度field并返回列表field中最大的对象.
但是,如果field为每个对象指定的属性返回None,len()则将使用a阻塞TypeError.我想我可以使用内联条件绕过它,但是我必须调用nested_getattr()两次,一次用于检查,如果返回值不是,则可能第二次None.我宁愿将其返回值缓存到变量并在决定返回什么之前在条件上运行它(或者只是让生成器表达式完全跳过它).
处理这个问题的好方法是什么?我对这个函数的其他实现是开放的maxk(),或者nested_getattr()(如果需要的话).
这是代码:
def findsort(something, alist):
for item in alist:
if item == something:
return "found"
else:
return "not found"
def main():
print(findsort(6, [3, 6, 1, 8, 11, 14]))
main()
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这不符合我认为它应该工作的方式.
当我运行它时,它会说"找不到".但是,如果我将要查找的值更改为列表中的第一项,即3,则返回"已找到".
我用字符串尝试了这个,我得到了相同的结果.
谁能告诉我我做错了什么?
我有一个日期时间戳,如“2013-12-20 23:40:33”。现在,我的要求是以相反的顺序重新格式化这个日期,例如:
<seconds><minutes><hr><day><month><year>
Run Code Online (Sandbox Code Playgroud)
在蟒蛇中。请建议
我遇到了这个例子("使用Python破解秘密密码",第135页),我很困惑:
not (False and True)
Run Code Online (Sandbox Code Playgroud)
该示例表明它评估为False,但我不明白为什么.如果括号修改优先级,那么我们肯定正在评估:
not (False)
Run Code Online (Sandbox Code Playgroud)
哪个评估True,不是吗?或者我错过了什么?
// output functions are configurable. This one just appends some text
// to a pre element.
function outf(text) {
var mypre = document.getElementById("output");
mypre.innerHTML = mypre.innerHTML + text;
}
function builtinRead(x) {
if (Sk.builtinFiles === undefined || Sk.builtinFiles["files"][x] === undefined)
throw "File not found: '" + x + "'";
return Sk.builtinFiles["files"][x];
}
// Here's everything you need to run a python program in …Run Code Online (Sandbox Code Playgroud)我在if ... then语句中发生了一个奇怪的语法情况.不太确定修复是什么......
x1 = 'minus'
if x1 == 'minus':
print('OK')
if x1 != 'minus':
print('this should not print')
y = {'direction':'minus'}
x2 = y['direction']
if x2 != 'plus' or x2 != 'minus':
print("huh...")
if x1 != 'plus' or x1 != 'minus':
print("??")
if x1 == 'plus' or x1 == 'minus':
print("wait...")
print(x2)
if (x2 != 'plus') or (x2 != 'minus'):
print("it wasn't the parenthesis...")
print(x2 != 'plus')
print(x2 != 'minus')
print(x2)
Run Code Online (Sandbox Code Playgroud)
输出是:
>OK
>huh...
>??
>wait...
>it wasn't the …Run Code Online (Sandbox Code Playgroud) 假设我有一个巨大的.txt文件,里面装满了随机字符,我想找出"稀有的".是否有一些模块(实际上是某些东西,实际上)在Python中(可能是版本3.x,但我还有一台使用Python 2.7的机器,以防它更好)为此目的编写?如果是肯定答案,我在哪里可以找到其功能的基本解释?非常感谢你.
如果我有字节 - 11001010或者01001010,如果它是一个有效的代码点,如何将其转换回Unicode?
我可以接受输入并对输入进行正则表达式检查,但这将是一种粗略的方式,它将仅限于UTF-8.如果我希望将来扩展,我该如何优化解决方案?
输入是0和1的字符串 -
11001010这是无效的
或者01001010这是有效的
或者11010010 11001110这是无效的
我正在尝试实施一个凯撒密码.
我试图在函数中返回消息,但是我收到一条错误消息(外部函数).有人可以帮忙吗?
提前致谢
cat
cate
catec
catecv
message = input("type message ")
shift = int(input("Enter number to code "))
message = message.lower() #convets to lower case
print (message)
for a in message:
if a in "abcdefghijklmnopqrstuvwxyz":
number = ord(a)
number += shift
if number > ord("z"):
number -= 26
elif number < ord("a"):
number += 26
message = message + (chr ( number))
print (message)
Run Code Online (Sandbox Code Playgroud) python ×10
python-3.x ×3
python-2.4 ×2
python-2.7 ×2
algorithm ×1
boolean ×1
date ×1
datetime ×1
dictionary ×1
dynamic ×1
file ×1
lambda ×1
list ×1
localization ×1
search ×1
sorting ×1
string ×1
unicode ×1
utf-8 ×1