python交互式页面输入exit()可以退出交互模式;
Linux中执行.py文件可运用chmod 755 hello.py更改文件权限,4:可读,2:可写,1:可执行,分别对应所属用户、所属组用户、其他用户;同时还要注意脚本开头语句:
#!/usr/bin/evn python:找环境变量,到整个系统里找一个叫Python的环境变量;
#!/usr/bin/python:找usr/bin下的,但是若自己Linux中装了python,python默认装在usr/local/bin下,此方法写死了,不推荐使用;
python解释器在加载.py文件中的代码时,会对内容进行编码(默认ASCII);
python中getpass模块可以支持密码输入不可视:注:getpass不受pycharm支持,所以在pycharm中无法执行。
import getpass
username = input("username:")
password = getpass.getpass("password:")
print(username,password)
python中有丰富的标准库和第三方库;
import sys
print(sys.path) #打印环境变量
print(sys.argv) #打印文件路径
python中如何获取当前时间点的时间戳,包含毫秒字段:
# coding:utf-8
import time
def get_time_stamp():
ct = time.time()
local_time = time.localtime(ct)
data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
data_secs = (ct - int(ct)) * 1000
time_stamp = "%s.%03d" % (data_head, data_secs)
print(time_stamp)
stamp = ("".join(time_stamp.split()[0].split("-")) + "".join(time_stamp.split()[1].split(":"))).replace('.', '')
print(stamp)
if __name__ == '__main__':
get_time_stamp()
python中解析json数据:
Json是Javascript程序编写数据结构的原生方式,在python中,字典的格式和json格式在显示上是一样的,但是字典是dict,而json是str;
# coding: utf-8
import json
test_dict = {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]}
print type(test_dict)
# 将python中的字段转换成字符串
json_str = json.dumps(test_dict)
print json_str
print type(json.dumps(test_dict))
# 将字符串转换成字典
json_js = json.loads(json_str)
print json_js
print type(json_js)
# 将字典转换成字符串并写入到文件中
with open("../record.json", 'w') as f:
json.dump(json_js,f)
print '加载文件完成'
# 把文件打开,并把字符串变换为数据类型
with open("../record.json", 'r') as load_f:
load_dict = json.load(load_f)
print load_dict
Set操作:
list = [1,2,3,4,5,5,3]
# 去重操作
print(set(list))
list_1 = [1,2,3]
list_2 = [2,3,4]
# 求交集
print(list_1.intersection(list_2))
print(list_1 & list_2)
# 求并集
print(list_1.union(list_2))
print(list_1 | list_2)
# 求差集 in list_1 but not in list_2
print(list_1.difference(list_2))
print(list_1 - list_2)
# 子集
print(list_1.issubset(list_2))
# 父集
print(list_1.isissuperset(list_2))
# 对称差集 把两个表中互相都没有的取出来
print(list_1.symmetric_difference(list_2))
print(list_1 ^ list_2)
# 添加
list_1.add(4) # 添加一项
list_1.update([4,7,8]) # 添加多项
# 删除
list_1.remove(4)
list_2.pop()
# 求集合长度
len(list_1)
# 判断元素在不在集合中
x in s
x not in s
文件操作:
打开文件的模式有:r,只读模式(默认);w,只写模式,不可读,不存在则创建,存在则覆盖;a,追加模式,可读不存在在创建,存在则追加;“+”表示可以同时读写某个文件;r+,表示可读写文件,可读可写可追加;写读w+;二者的区别:写读是先创建文件,然后再写,而读写现有写好的文件。
1、打开文件,得到文件句柄并赋值给一个变量;
2、通过句柄贵文件进行操作;
3、关闭文件;
fp = open('lyrics') #打开文件
first_line = fp.readline() #读取第一行数据
data = fp.read() # 读取剩下的所有内容,文件比较大时不建议使用
# 打印前5行
print(fp.readline())
print(fp.readline())
print(fp.readline())
print(fp.readline())
print(fp.readline())
#打印前5行第二种写法
for line in fp.readlines():
print(line)
print(line.strip()) # 相对于前者去掉空格数据
#打印前5行第三种写法
for index,line in enumerate(f.readlines()):
if index==9:
print('ssssssssssssssssss')
continue
print(line.strip())
# 推荐方法
count = 0
for line in f:
if count == 9:
print('ssssssssssssssssssssssss')
count +=1
continue
print(line)
count +=1
#打印当前的位置
f = open("yesterday2",'r',encoding="utf-8")
print(f.tell())
print(f.read(5))
print(f.tell())
#回到指定的位置
f.seek(0)
# 打印进度条
import sys, time
for i in range(20):
sys.stdout.write('#')
sys.stdout.flush()
time.sleep(0.1)
# 截断
fp.truncate(10) #文件中指定的位置截断
with语句
为了避免打开文件后忘记关闭,可以通过管理上下文,即
with open('log','r') as f:
....
with代码至香港完毕后内部会自动关闭并释放文件资源。
Python字符编码转换:
decode将字符编码转换成Unicode编码;
encode将字符编码转换成UTF-8编码。
打印当前系统的编码:
import sys
print(getdefaultencoding())
gbk_to_utf8 = s_gbk.decode("gbk").encode("utf-8")