python 常用基础操作

本文介绍了Python版本切换的方法,包括在Windows和Ubuntu系统中的操作步骤。此外还详细讲解了Python文件操作,如获取当前路径、文件复制重命名及读写等。最后介绍了如何使用PIL库在图像上绘制中文标签,并提供了Python格式化表达的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 基础操作(一)

1.python版本切换

  • 在windows中如果安装了python2和python3,可以直接进入python的安装路径,把python.exe重命名即可。关于pip指向的python,详细可以参考这篇博客:http://blog.youkuaiyun.com/zyx19950825/article/details/61919038

  • 在ubuntu中如果安装的是anaconda,设置默认python为anaconda,可以修改用户的环境变量:

    sudo gedit ~/.bashrc

    在最后一行加入anaconda的安装路径

    export PATH="/home/wrz/anaconda2/bin:$PATH"

    保存退出,source ~/.bashrc 使之生效

  • 如果安装了anaconda2 和 anaconda3,希望在命令行里输入python调用python2,输入python3调用python3:在 安装路径下找到可执行文件 anaconda3/bin/python.bin 可以修改python.bin的名字为python3.bin,再去命令行里输入python3,则调用的是anaconda3了。

  • 或者用动态链接库的方法:

    ubuntu自带的python的可执行文件在 usr/bin 下:

    1

    可以给 anaconda/bin/python.bin 在系统默认的路径里建立一个链接:

    sudo ln -s '/home/wrz/anaconda2/bin/python' python_anaconda

    再去命令行输入 python_anaconda则可以看到版本变了

    2

  • 推荐还是使用ubuntu自带的python,很多库安装后找python都是找系统默认python路径


2.python常用文件操作

2.1 获取当前路径

关于获取当前路径,这篇博客是我见过讲的最清楚的,特别感谢它的作者:http://www.jb51.net/article/49035.htm

大概总结一下:

  • 方法:

    1. os.getcwd() :执行脚本时所在的路径
    2. sys.path[0] || sys.argv[0] :程序入口的路径
    3. os.path.split(os.path.realpath(__file__))[0] :真实路径
  • 文件结构:

    --/home/wrz/pyfile/
    --main.py
    --sub/
      --__init__py
      --script.py

    main.py:

    import os
    import sys
    from sub import script
    
    print "main.py: os.getcwd() = ",os.getcwd()
    print "main.py: sys.path[0] = ",sys.path[0]," sys.argv[0] = ",sys.argv[0]
    print "main.py: __file__ =",os.path.split(os.path.realpath(__file__))[0]
    
    script.subpath()

    script.py:

    import os
    import sys
    
    def subpath(): 
      print "script: os.getcwd() = ",os.getcwd()
      print "script: sys.path[0] = ",sys.path[0]," sys.argv[0] = ",sys.argv[0]
      print "script.py: __file__ = ",os.path.split(os.path.realpath(__file__))[0]
  • 实验结果:

    3

2.2 文件拷贝重命名

  • import shutil
    shutil.copyfile(oldname,newname)
  • import os
    os.rename(oldname,newname)

2.3 文件读写

  • import os
    
    
    # find all images in JPEGImages by name given by test.txt
    
    
    f = open('test.txt')
    imgs = os.listdir('JPEGImages')
    
    while 1:
      line = f.readline()
      # os.write(f,'some str')
      line = line.strip('\n')
      for img  in imgs:
          name = os.path.splitext(img)[0]
          if line == name:
              oldname = os.path.join('JPEGImages',img)
              newname = os.path.join('test',img)
              shutil.copyfile(oldname,newname)
      if not line:
          break

3.python读写xml

十分详细:http://www.runoob.com/python/python-xml.html

4.python给图像画中文标签

使用PIL库:

# -*- coding:utf-8 -*-
import PIL
import Image
import ImageDraw
import ImageFont
import os.path as osp
import os

this_dir = osp.dirname(__file__)
image_pil = Image.open(osp.join(test_dir,"image.jpg"))
drawobj = ImageDraw.Draw(image_pil)
# draw rectangle
drawobj.rectangle((int(detection[1]),int(detection[2]),int(detection[3]),int(detection[4])),outline="red")
drawobj.rectangle((int(detection[1]),int(detection[2]),int(detection[1])+150,int(detection[2])+25),fill=128)
# draw label in chinese
txt = unicode('中','utf-8')
            font = ImageFont.truetype('/usr/share/fonts/truetype/YaHei.Consolas.1.11b_0.ttf',18)
drawobj.text((int(detection[1]),int(detection[2])),txt,font=font)
image_pil.save(osp.join(test_dir,"image.jpg"))

5 python格式化表达

参考博客:http://www.jb51.net/article/63672.htm

语法: ‘…{ }…’.format( ) || ‘…{ : }…’.format

  • ‘{},{}’.format('first word',99)

    >>first word,99

  • '{1},{0},{1}'.format("strings",88)

    >>88,strings,88

  • '{name},{age}'.format(age = 18,name = 'tom')

    >>tom,18

  • '{self.attr1},{self.attr2}'.format(self = myclass)

  • '{0[1],0[0]}'.format(array=[0,1])

  • '{:.2f}'.format(3.1415926)

    >>3.14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值