在Python py中调用sh
callsh.py:
#!/usr/bin/py
import sys
import os
print "start call sh file"
os.system('./fromsh.sh')
print "end call sh file"
fromsh.sh
#!/bin/bash
echo "from sh file "
chmod +x callsh.py
chmod +x fromsh.sh
./callsh.py
start call sh file
from sh file
end call sh file
在Shell sh中调用py
#!/bin/bash
echo 'start call py'
./frompy.py
echo 'end call py'
#!/usr/bin/python
print "from python"
chmod +x callpy.sh
chmod +x frompy.py
./callsh.py
start call sh file
from sh file
end call sh file
二、在Linux环境下输入
python -v
就可以进入到Python命令行模式

输入
quit()
退出python 命令行模式
三、os.chdir() 切换目录
os.getcwd() 获得当前目录
os.listdir() 返回一个由文件名和目录名组成的列表
os.path.isdir() 用于判断对象是否为已目录
import os
os.path.abspath(path) 返回绝对路径
print(os.path.abspath(".")) #当前目录的绝对路径
print(os.path.abspath(r"..")) #上级目录的绝对路径
print(os.path.abspath(r"D:\python_workshop\python6\revise\函数.py"))
python console
Python 控制台
四、Python提供了future模块,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性
from future import print_function
python2 调用 python3 print函数接口
其实这句函数之后,即使在低版本的python2.X,当使用print函数时,须python3.X那样加括号使用。tips:python2.X中print不需要括号,而在python3.X中则需要。
五、当import 的模块和.py 文件名一样的话,会出错

修改文件后,由于存在datetime.pyc 文件,还是会出错。
删除datetime.pyc 后就能正常运行了
.py 文件与 .pyc 文件的区别
原来Python的程序中,是把原始程序代码放在.py文件里,而Python会在执行.py文件的时候。将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,这么做的目的就是为了加快下次执行文件的速度。
所以,在我们运行python文件的时候,就会自动首先查看是否具有.pyc文件,如果有的话,而且.py文件的修改时间和.pyc的修改时间一样,就会读取.pyc文件,否则,Python就会读原来的.py文件。
其实并不是所有的.py文件在与运行的时候都会产生.pyc文件,只有在import相应的.py文件的时候,才会生成相应的.pyc文件
六、import 和 from import 的区别
https://blog.csdn.net/qq_41632611/article/details/81351437
https://baijiahao.baidu.com/s?id=1595360515695157210&wfr=spider&for=pc
1、语法分析:首先from A import a1 是从A模块导入a1工具(可以是某个 函数,全局变量,类),import A是导入整个A模块的全部内容(包括全部的函数,全局变量,类)。
2、内存分析:from...import...会在内存中创建并加载该模块工具的副本,当有另外一个程序导入时,会在内存中创建另一个副本进行加载,不会共用一个副本。所以程序进行的修改不会影响到被导入的原模块,且不同程序之间不会互相影响。
import...方法导入模块会在内存中直接加载该模块的全部属性。当出现多个程序导入该模块时,会共用一个模块,程序之间会互相影响,包括原模块。
datetime https://www.liaoxuefeng.com/wiki/1016959663602400/1017648783851616
from datetime import datetime
now = datetime.now() # 获取当前datetime
print(now)
2015-05-18 16:28:07.198690
print(type(now))
<class 'datetime.datetime'>
注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。
如果仅导入import datetime,则必须引用全名datetime.datetime。
datetime.now()返回当前日期和时间,其类型是datetime。
datetime转换为timestamp
str转换为datetime
很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:
datetime转换为str
>>>from datetime import datetime
>>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
>>> print(cday)
2015-06-01 18:19:59
datetime转换为str
如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()实现的,同样需要一个日期和时间的格式化字符串
>>> from datetime import datetime
>>> now = datetime.now()
>>> print(now.strftime('%a, %b %d %H:%M'))
Mon, May 05 16:28
网友评论