工作中常用的一些Python实例

不定期更新中ing......

数字1转换成字符0001

  • 代码
    i = 1
    k = str(i)
    other_url = k.zfill(4)
  • 输出:

    0001

切片

  • 在Python里,像列表(list)、元组(tuple)、和字符串(str)这类序列类型都支持切片操作

为什么切片和区间都会自动忽略最后一个元素

    1. 当只有最优一个位置信息时,可以快速的看出切片和区间里有几个元素
      • 例:range(3)my_list[:3]返回3个元素
    1. 当起止位置信息都可见时,我们可以快速的计算出切片和区间的长度,用最后一个数减去第一个下标即可。
    1. 可以让我们利用任意一个下标来把序列分割成不重叠的两部分,只要写成my_list[:x]my_list[x:]就可以了
      • 例:
    list=[10,20,30,40,50,60]
    list[:2]    #在下标2的地方分割
    #[10,20]
    list[2:]
    #[30,40,50,60]
    list[:3]    #在下标3的地方分割
    #[10,20,30]
    list[3:]
    #[40,50,60]

对对象进行切片

  • 我们可以用s[a:b:c]的形式对s在a和b之间以c为间隔取值,c的值可以为负,负值意味着反向取值
    • 例:
      s='bicycle'
      s[::3]
      #'bye'
      s[::-1]
      #elcycib
      s[::-2]
      #eccb

给切片赋值

  • 如果把切片放在赋值语句的左边,或把它作为del操作的对象,我们就可以对序列进行嫁接、切除或就地修改操作

    • 例:

      l=list(range(10))
      print l
      #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      
      l[2:5]=[20,30]
      print l
      #[0, 1, 20, 30, 5, 6, 7, 8, 9]
      
      del l[5:7]
      print l
      #[0, 1, 20, 30, 5, 8, 9]
      
      l[3::2]=[11,22]
      print l
      #[0, 1, 20, 11, 5, 22, 9]
    • 注意:
      如果赋值的对象是一个切片,那么赋值语句的右侧必须是个可迭代对象。几篇只有单独的一个值,也要把它转换成可迭代的序列

      l=[0, 1, 20, 11, 5, 22, 9]
      
      l[2:5]=[100]  #★☆☆☆★
      
      print l
      #[0, 1, 100, 22, 9]

文件读写

  • 'r':读
  • 'w':写
  • 'a':追加
  • 'r+' == r+w(可读可写,文件若不存在就报错(IOError))
  • 'w+' == w+r(可读可写,文件若不存在就创建)
  • 'a+' ==a+r(可追加可写,文件若不存在就创建)

txt文件

  1. 读取
    python文件对象提供了三个“读”方法: read()、readline() 和 readlines()。每种方法可以接受一个变量以限制每次读取的数据量。

    • read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。
    • readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。
    • readline() 每次只读取一行,通常比readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。
      注意:这三种方法是把每行末尾的'\n'也读进来了,它并不会默认的把'\n'去掉,需要我们手动去掉。
with open('D:/test.txt', 'r') as f:
    print(f.read())
  1. 写入
    python文件对象提供了两个“写”方法: write() 和 writelines()。

    • write()方法和read()、readline()方法对应,是将字符串写入到文件中。
    • writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。
with open('test.txt', 'w') as f:
    f.write('Hello, world!')

json

  • 读取

    test_dict = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
    #dumps 将数据转换成字符串
    with open("G:/aaa/record.json","w") as f:
        json.dump(test_dict,f,indent=4)
  • 写入

    #把文件打开,并把字符串变换为数据类型
    with open("G:/aaa/record.json",'r') as load_f:
        load_dict = json.load(load_f)
        print load_dict['Michael']

读写

#推荐使用,不会产生文件占用
with open('D:/test.txt', 'r') as f:
    print(f.read())

with open('D:/test.txt', 'w') as f:
    f.write('Hello, world!')

获取路径下所有文件名

import os
path=r'U:\XYJ\Production\Sourceimages\Prop'
filelist=os.listdir(path)

读取注册表

#本代码为读取库文档路径
import _winreg
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders")
type = _winreg.QueryValueEx(key, "Personal")

命令行传参

  1. 创建一个文件 demo.py

    from sys import argv
    print(argv[0])
    print(argv[1])
    print(argv[2])
    print(type(argv[1]))
  2. 在CMD中执行命令:
    python demo.py 1024 2048

  3. 运行结果为:

    demo.py
    1024
    2048
    

    可以发现传的参数为str类型

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇