Python项目实战(一)

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")

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值