很多朋友对于python运行时间和算法执行时间怎么算不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
本文目录
- 手把手教你怎么用python获得当前日期和时间
- Python中如何在一段时间后停止程序
- python怎么运行py文件
- python运行时间的几种 ***
- 用python+编写一个程序,打印出执行1+1运行100次的时间
- 利用time库,统计一段程序(递归求9999的阶乘)运行时间。
一、手把手教你怎么用python获得当前日期和时间
1、python怎么获得当前的日期和时间?python怎么获得当前时间的时间戳?
2、python怎么查看当前时间?python怎么查看当前日期?
3、python怎么获得当前时间,看这篇就够了。
4、这里我们要用到的是python的内置模块,time模块。顾名思义,这是一个和时间有关的模块。导入time模块。 import time
5、之一步要做的就是从1970 *** 后到目前为止度过的秒数(浮点类型)。其实想要获得这个秒数,只有一个 *** ,就是通过time模块内的time *** 来获得。即 time.time()
6、但是,time.time返回的这个高精度浮点数我们并不能准确的得到我们想要的当前时间。我们只知道这是从1970到目前为止已经过了多少秒。这里我们还需要使用一个 *** 来把秒数变成当前的时间戳。这时我们就要用到另外一个 *** ,localtime *** ,该 *** 的参数为我们刚刚所说的1970年到目前为止的秒数,返回值为一个叫struct_time结构体,如果不懂什么叫结构体,没关系,也可以理解为localtime *** 返回一个struct_time对象。 time.localtime(time.time())可以看到localtime *** 的返回结果,从单词的字面上我们也能大概了解到:前缀tm为time,year为年份,mon为月份,mday为日,ho *** 为时,min为分,sec为秒等等
7、但是我们想要的并不是这种结果,我们想要获得一个易于理解的数据。常见的asctime类型,例如显示结果如WedFeb1315:46:112018如果小伙伴常用Linux对这种类型显然不会陌生,在linux上,我们使用date命令,不进行时间格式化的话,就会输出这种形式的时间。例如小编这里虚拟机内的linux,运行date的输出结果如图。格式为:星期几月份日数时:分:秒年份注意的是,在linux上的date默认会输出时间区域,例如默认的美国时间EDT,或者修改为我们 *** 的北京时间CTS。
8、这里提供两种 *** 进行struct_time数据格式化。之一种就是第4步讲述的asctime格式,我们调用time模块内的asctime *** 即可,参数为struct_time对象数据,返回字符串,即asctime格式当前日期时间。 time.asctime(time.localtime(time.time()))'Wed Apr 4 20:27:15 2018'翻译成中文是:星期三四月 4 20:27:15 2018
9、还有一个数据格式化的 *** 是time模块内提供的strftime *** 。 str time.strftime(格式转化字符,时间戳)格式转化字符如下:%y两位数的年份表示(00-99)%Y四位数的年份表示(000-9999)%m月份(01-12)%d月内中的一天(0-31)%H 24小时制小时数(0-23)%I 12小时制小时数(01-12)%M分钟数(00=59)%S秒(00-59)%a本地简化星期名称%A本地完整星期名称%b本地简化的月份名称%B本地完整的月份名称%c本地相应的日期表示和时间表示%j年内的一天(001-366)%p本地A.M.或P.M.的等价符%U一年中的星期数(00-53)星期天为星期的开始%w星期(0-6),星期天为星期的开始%W一年中的星期数(00-53)星期一为星期的开始%x本地相应的日期表示%X本地相应的时间表示%Z当前时区的名称%%%号本身这里常用的小编就进行了加粗,其实常用的就是这几个。一定要记住的是:%Y=年,%m=月,%d=日,%H= 24制时,%M=分,%S=秒。那么知道转化符的意义之后,我们做起来就很简单了。例如我们可以获得当前时间和日期,然后获得当前是一年中的第几天,然后获得当前的时区 time.strftime("当前日期:%Y年%m月%d日",time.localtime(time.time()))#获得当前日期 time.strftime("当前时间:%H时%M分%S秒",time.localtime(time.time()))#获得当前时间 time.strftime("今天是%Y年的第%j天,时区为%Z",time.localtime(time.time()))代码只能在python3中有效运行,python2需要使用print输出(否则中文会变成16进制字符)。
10、python2运行如下,加上 print即可: print(time.strftime("当前日期:%Y年%m月%d日",time.localtime(time.time())))#获得当前日期 print(time.strftime("当前时间:%H时%M分%S秒",time.localtime(time.time())))#获得当前时间 print(time.strftime("今天是%Y年的第%j天,时区为%Z",time.localtime(time.time())))
二、Python中如何在一段时间后停止程序
用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:
print('这是中断,切换账号')
t= threading.Timer(3, change_user)
t= threading.Timer(3, change_user)
有时当一个条件成立的情况下,需要终止程序,可以使用sys.exit()退出程序。sys.exit()会引发一个异常:
1、如果这个异常没有被捕获,那么python编译器将会退出,后面的程序将不会执行。
2、如果这个异常被捕获(try...except...finally),捕获这个异常可以做一些额外的清理工作,后面的程序还会继续执行。
注:0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。另一种终止程序的 *** os._exit()
一般情况下使用sys.exit()即可,一般在fork出来的子进程中使用os._exit()
采用sys.exit(0)正常终止程序,程序终止后shell运行不受影响。
采用os._exit(0)关闭整个shell,调用sys._exit(0)后整个shell都重启了(RESTART Shell)。
三、python怎么运行py文件
在如何使用Python脚本转换数据和命令行中,我们将深入探讨如何使用Python脚本和命令行来转换数据。
但是首先,值得提出一个您可能正在思考的问题:“Python如何适合命令行,为什么当我知道我可以使用IPython笔记本完成所有数据科学工作时,为什么还要使用命令行与Python进行交互?还是Jupyter实验室?”
笔记本非常适合快速进行数据可视化和探索,但是Python脚本是将我们学到的东西投入生产的一种方式。假设您想建立一个网站,以帮助人们发布具有理想标题和提交时间的HackerNews帖子。为此,您需要脚本。
本教程假定您具有函数的基本知识,并且有一点命令行经验也不会受到损害。如果您以前从未使用过Python,请随时查看我们涵盖Python函数基础的任务,或者更深入地研究我们的一些数据科学课程。最近,我们发布了两个新的交互式命令行课程:“命令行元素”和“命令行中的文本处理”,因此如果您想更深入地研究命令行,我们也建议您
也就是说,不必过分担心先决条件!我们将解释我们正在做的所有事情,所以让我们开始吧!
HackerNews是一个站点,用户可以在该站点上通过Internet(通常是有关技术和创业公司)提交文章,而其他人可以“赞扬”这些文章,表示他们喜欢它们。提交的 *** 越多,在社区中就越受欢迎。热门文章进入HackerNews的“首页”,在其他网站上它们更有可能被他人看到。
我们将使用的数据集是由ArnaudDrizard使用HackerNewsAPI编译的,可以在此处找到。我们从数据中随机抽取了10000行,并删除了所有多余的列。我们的数据集只有四列:
headline—提交的标题。用户可以对其进行编辑,而不必与原始文章的标题相匹配。
我们将编写脚本来回答三个关键问题:
切记:在编程时,有多种 *** 可以处理任务。在本教程中,我们将逐步解决这些问题,但是肯定还有其他 *** 同样有效,因此请随时尝试并尝试提出自己的 *** !
使用命令行和Python脚本读取数据
要加注星标,让我们Transforming_Data_with_Python在桌面上创建一个文件夹。要使用命令行创建文件夹,可以使用mkdir命令,后跟文件夹名称。例如,如果要创建一个名为的文件夹test,则可以导航到Desktop目录,然后键入mkdirtest。
我们将稍后讨论为什么创建文件夹,但是现在,让我们使用cd命令导航到创建的文件夹。该cd命令允许我们使用命令行更改目录。
尽管有多种使用命令行创建文件的 *** ,但我们可以利用一种称为管道传输和重定向输出的技术来一次完成两件事:将输出从stdout(命令行生成的标准输出)重定向到文件中并创建一个新文件!换句话说,我们可以让它创建一个新文件并使它的输出成为该文件的内容,而不是让命令行仅打印其输出。
要做到这一点,我们可以使用>和>>,这取决于我们想用文件来完成。如果文件不存在,两者都会创建一个文件;但是,>将使用重定向的输出覆盖文件中已有的文本,同时>>将任何重定向的输出附加到文件中。
我们希望将数据读入该文件并创建一个描述 *** 的文件名和函数名称,因此我们将创建一个名为的函数,load_data()并将其保存在名为的文件中read.py。让我们使用读取数据的命令行创建函数。为此,我们将使用该printf函数。(我们将使用printf它,因为它允许我们打印换行符和制表符,我们将使用它们来使脚本对自己和其他人更具可读 *** )。
为此,我们可以在命令行中输入以下内容
printf\"importpandasaspddefload_data():hn_stories=pd.read_ *** v('hn_stories. *** v')hn_stories.colummns=['submission_time','upvotes',' *** l','headline']ret *** n(hn_stores)\">read.py
检查上面的代码,有很多事情要做。让我们将其分解。在函数中,我们是:
a.请记住,我们要使脚本可读,我们正在使用printf命令通过命令行生成一些输出,以在生成输出时保留格式。
c.将数据集(hn_stories. *** v)读入pandas数据框。
d.使用df.columns列名添加到我们的数据帧。
e.创建一个名为的函数load_data(),其中包含用于读取和处理数据集的代码。
f.利用换行符()和制表符()保留格式,因此Python可以读取脚本。
g.将输出重定向printf到read.py使用>运算符调用的文件。由于read.py尚不存在,因此已创建文件。
运行上面的代码后,我们可以catread.py在命令行中键入并执行命令以检查的内容read.py。如果一切正常运行,我们的read.py文件将如下所示:
在该项目的其余部分,我们将创建更多脚本来回答我们的问题并使用该load_data()函数。尽管我们可以将该函数粘贴到使用该函数的每个文件中,但是如果我们正在处理的项目很大,则可能会变得非常麻烦。
为了解决这个问题,我们可以创建一个名为的文件__init__.py。本质上,__init__.py允许文件夹将其目录文件视为包。最简单的形式__init__.py可以是一个空文件。它只需要存在就可以将目录文件视为包。您可以在Python文档中找到有关包和模块的更多信息。
因为load_data()是中的函数read.py,所以我们可以使用导入包的相同 *** 来导入该函数:fromreadimportload_data()。
还记得使用命令行创建文件的多种 *** 吗?我们可以使用另一个命令来创建文件__init__.py这次,我们将使用该touch命令来创建文件。touch是一个在您运行命令后立即为您创建一个空文件的命令:
现在,我们已经创建了一个脚本来读取和处理数据以及创建的数据__init__.py,我们可以开始分析数据了!我们要探索的之一件事是标题 *** 现的独特词。为此,我们要执行以下 *** 作:
1)count.py使用命令行创建一个名为的文件。
2)load_data从导入read.py,并调用函数以读取数据集。
3)将所有标题合并为一个长长的字符串。当您合并标题时,我们希望在每个标题之间留一个空格。在此步骤中,我们将使用Series.str.cat连接字符串。
5)使用Counter类可以计算每个单词在字符串 *** 现的次数。
6)使用该.most_common() *** 将100个最常用的单词存储到wordCount。
如果使用命令行创建此文件,则外观如下:
printf\"fromreadimportload_datafromcollectionsimportCounterstories=load_data()headlines=stories['headline'].str.cat(sep='').lower()wordCount=Counter(headlines.split('')).most_common(100)print(wordCount)\">count.py
运行上面的代码后,您可以catcount.py在命令行中键入并执行命令以检查的内容count.py。如果一切正常运行,您的count.py文件将如下所示:
现在,我们已经创建了Python脚本,我们可以从命令行运行脚本以获取一百个最常用单词的列表。要运行脚本,我们从命令行键入pythoncount.py命令。
脚本运行后,您将看到以下打印结果:
[('the',2045),('to',1 *** 1),('a',1276),('of',1170),('for',1140),('in',1036),('and',936),('',733),('is',620),('on',568),('hn:',537),('with',537),('how',526),('-',487),('yo *** ',480),('you',3 *** ),('ask',371),('from',310),('new',304),('google',303),('why',262),('what',258),('an',243),('are',223),('by',219),('at',213),('show',205),('web',1 *** ),('it',1 *** ),('_',184),('do',183),('app',178),('i',173),('as',161),('not',160),('that',160),('data',157),('about',154),('be',154),('facebook',150),('startup',147),('my',131),('|',127),('using',125),('free',125),('online',123),('apple',123),('get',122),('can',115),('open',114),('will',112),('android',110),('this',110),('out',109),('we',106),('its',102),('now',101),('best',101),('up',100),('code',98),('h *** e',97),('or',96),('one',95),('more',93),('first',93),('all',93),('software',93),(' *** ke', *** ),('iphone',91),('twitter',91),('should',91),('video',90),('social', *** ),('&',88),('internet',88),('us',88),('mobile',88),('use',86),('has',84),('just',80),('world',79),('desi *** ',79),('business',79),('5',78),('apps',77),('so *** ce',77),('cloud',76),('into',76),('api',75),('top',74),('tech',73),('j *** ascript',73),('like',72),('programming',72),('windows',72),('when',71),('ios',70),('live',69),('fut *** e',69),('most',68)]
在我们的网站上滚动浏览它们会有些尴尬,但是您可能会注意到最常见的词,例如等等。这些词被称为停用词the,toafor这些词对人类语音很有用,但对数据分析没有任何帮助。您可以在我们的spaCy教程中找到更多有关停用词的信息;如果要扩展此项目,则从我们的分析中删除停用词将是一个有趣的下一步。
即使包含了停用词,我们也可以发现一些趋势。除了停用词之外,这些词中的绝大多数都是与技术和创业相关的术语。考虑到HackerNews专注于科技创业公司,这并不奇怪,但是我们可以看到一些有趣的特定趋势。例如,谷歌是该数据集中最常提及的品牌。Facebook,Apple和Twitter等其他品牌也是讨论的热门话题。
现在我们已经探索了不同的标题并显示了前100个最常用的词,现在我们可以探索域提交了!为此,我们可以执行以下 *** 作:
1)do *** ins.py使用命令行创建一个名为的文件。
2)load_data从导入read.py,并调用函数以读取数据集。
3)使用value_counts()大熊猫中的 *** 来计算列中每个值的出现次数。
4)遍历该系列并打印索引值及其关联的总数。
printf\"fromreadimportload_datastories=load_data()do *** ins=stories[' *** l'].value_counts()forname,rowindo *** ins. *** s():print('{0}:{1}'.for *** t(name,row))\">do *** ins.py
再一次,如果我们catdo *** ins.py在命令行中输入来检查do *** ins.py,我们应该看到:
我们想知道大多数文章何时提交。一种简单的重组 *** 是查看文章的提交时间。为了弄清楚这一点,我们需要使用该submission_time列。
该submission_time列包含如下时间戳:2011-11-09T21:56:22Z。这些时间以UTC表示,UTC是大多数软件用于保持一致 *** 的通用时区(想象一个数据库中填充的时间都具有不同的时区;要使用它会非常麻烦)。
要从时间戳获取小时,我们可以使用该dateutil库。中的parser模块dateutil包含parse函数,该函数可以带一个时间戳,如何使用Python脚本转换数据和命令行并返回一个datetime对象。这是文档的链接。解析时间戳后,ho *** 结果日期对象的属 *** 将告诉您文章提交的时间。
1)times.py使用命令行创建一个名为的文件。
2)编写一个函数以从时间戳中提取小时。此函数应首先用于dateutil.parser.parse解析时间戳,然后从结果datetime对象中提取小时,然后使用来返回小时.ho *** 。
3)使用pandasapply() *** 创建提交时间列。
4)使用value_counts()大熊猫中的 *** 来计算每小时发生的次数。
printf\"fromdateutil.parserimportparsefromreadimportload_datadefextract_ho *** (timestamp):datetime=parse(timestamp)ho *** =datetime.ho *** ret *** nho *** stories=load_data()stories['ho *** ']=stories['submission_time'].apply(extract_ho *** )time=stories['ho *** '].value_counts()print(time)\">times.py
这是它看起来像一个单独.py文件的样子(如上所述,您可以通过cattimes.py从命令行运行以检查文件来进行确认):
现在,我们已经创建了Python脚本,我们可以从命令行运行脚本,以获取特定时间内发布了多少篇文章的列表。为此,您可以从命令行键入pythontimes.py命令。运行此脚本,您将看到以下结果:
您会注意到大多数提交内容是在下午发布的。但是请记住,这些时间是UTC时间。如果您有兴趣扩展此项目,请尝试在脚本中添加一个部分,以将UTC的输出转换为本地时区。
在如何使用Python脚本转换数据和命令行中,我们探索了数据并建立了一个短脚本目录,这些短脚本可相互配合以提供所需的 *** 。这是构建我们的数据分析项目的生产版本的之一步。
但是,当然,这仅仅是开始!在如何使用Python脚本转换数据和命令行中,我们没有使用过upvotes数据,因此这是扩展分析范围的一个不错的下一步:
a.标题长度更大才能获得最多 *** ?
我们鼓励您结合自己的问题,并在继续探索此数据集时发挥创造力!
1、首先在资源管理器里 *** 一下py文件存放的路径,按下windows键+r,在运行里输入cmd,回车打开命令行:
2、在命令行里,先切换到py文件的路径下面,接着输入“python文件名.py”运行python文件:
3、按下回车键,可以看到窗口中py文件开始运行了,注意在命令行运行py文件,要将python安装路径添加到环境变量path中,否则会报错,找不到命令。至此python运行文件的 *** 作就完成了:
四、python运行时间的几种 ***
now=time.strftime("%Y-%m-%d%H:%M:%S")
printnow
2.获取上个月最后一天的日期(本月的之一天减去1天)
2.获取上个月最后一天的日期(本月的之一天减去1天)
last=datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)
printlast
3.获取时间差(时间差单位为秒,常用于计算程序运行的时间)
3.获取时间差(时间差单位为秒,常用于计算程序运行的时间)
starttime=datetime.datetime.now()
endtime=datetime.datetime.now()
print(endtime-starttime).seconds
4.计算当前时间向后10个小时的时间
4.计算当前时间向后10个小时的时间
d3=d1+datetime.timedelta(ho *** s=10)
d3.ctime()
注:常用的类有:datetime和timedelta二种,相互间可以加减。
注:常用的类有:datetime和timedelta二种,相互间可以加减。
五、用python+编写一个程序,打印出执行1+1运行100次的时间
1、您好!您可以使用Python的time模块来计算执行1+1运行100次的时间。首先,您需要在您的程序中导入时间模块。然后,您可以使用time.time()函数来获取当前时间,并在开始执行运算之前调用它来获取开始时间,在运算完成之后再调用它来获取结束时间,然后将两者相减来计算出总运行时间。下面是一个例子:
2、run_time= end_time- start_time
六、利用time库,统计一段程序(递归求9999的阶乘)运行时间。
1、以上代码中,首先导入了 time库。然后定义了一个递归函数 factorial,用于计算给定整数的阶乘。接着使用 time.time() *** 分别记录了程序的开始时间和结束时间,并计算二者之差,从而得出程序的运行时间。最后打印出结果和运行时间。
2、在实际应用时,可以根据需要进行调整和优化,例如可以添加时间单位、增加异常处理等 *** 作,以提高程序的可读 *** 和健壮 *** 。
关于python运行时间和算法执行时间怎么算的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。