博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python编码/文件读取/多线程
阅读量:6701 次
发布时间:2019-06-25

本文共 1700 字,大约阅读时间需要 5 分钟。

Python编码/文件读取/多线程

个人笔记~~记录才有成长   编码/文件读取/多线程

编码

  常用的一般是gbk、utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字来处理,所以需要对不同的编码格式进行转化。

  这里需要的函数decode和encode,形式都很简单,只要牢记对应的格式对应的编码就好

如果是utf-8,想转换成unicodecontent.decode('utf-8')如果是Utf-8,想转换成gbkcontent.decode('utf-8').encode('gbk')

  注意:对于Python可以在.py中指定编码格式,如下选择的是utf-8格式

# -*- coding: utf-8 -*-

文件读取

传统的读法,全部读出,按行处理:

fp=open("./output.txt", "r");alllines=fp.readlines();fp.close();for eachline in alllines:    print eachline;

使用文件迭代器 每次只读取和显示一行:

fp=open("./output.txt", "r");for eachline in fp:    print eachline;

读取和保存CSV文件,使用CSV模块

import csvdef loadFile(file_name):    f = open(file_name)    r = csv.reader(f)    for item in r:        print item    type = sys.getfilesystemencoding()    for line in r:def saveFile(result):    writer = csv.writer(open('result.csv','w'), dialect='excel')    for item in result:        writer.writerow(item)

多线程

  由于程序数据有点大,尝试一下Python的多线程,其实和C++/JAVA都是类似的

调用thread模块中的start_new_thread()函数来产生新线

import timeimport threaddef timer(n, ID):    cnt = 0    while cnt

  python中的线程是通过thread模块来调用的,调用thread.start_new_thread()函数,该函数由两部分参数,第一个参数为线程函数,第二个参数为提供给线程函数的tuple型参数。

使用threading模块的 Thread类

   这里要接触到继承的概念了,这种处理方式相对来说要清晰的多。

  通过调用threading模块继承threading.Thread类来包装一个线程对象。

  • 在自己的线程类的__init__里调用threading.Thread.__init__(self, name = threadname)
  • Threadname为线程的名字
  • run(),通常需要重写,编写代码实现做需要的功能。
  • getName(),获得线程对象名称
  • setName(),设置线程对象名称
  • start(),启动线程
  • jion([timeout]),等待另一线程结束后再运行。
  • setDaemon(bool),设置子线程是否随主线程一起结束,必须在start()之前调用。默认为False。
  • isDaemon(),判断线程是否随主线程一起结束。
  • isAlive(),检查线程是否在运行中。
import timeimport threadimport threadingdef timer1(n, ID):    cnt = 0    while cnt

 

本作品采用 进行许可。欢迎转载,请注明出处:
转载自:

转载于:https://www.cnblogs.com/coder2012/p/3322196.html

你可能感兴趣的文章
bash中(),{},(()),[],[[]]的区别
查看>>
Oracle PL/SQL匿名块(三)
查看>>
模拟实现strstr
查看>>
解决Office系列安装不上的办法
查看>>
vimdiff的简单使用
查看>>
我的友情链接
查看>>
工作的习惯,看到好收藏下
查看>>
利用ACS来实现AAA服务
查看>>
国内开源镜像站
查看>>
vb.net中东软医保接口的调用
查看>>
java 消息摘要算法MD
查看>>
Web Service security UserNameToken 使用
查看>>
I/O重定向
查看>>
去除vue项目中的#及其ie9兼容性
查看>>
linux实例 批量修改图片文件名
查看>>
day15(mysql 的多表查询,事务)
查看>>
IOS
查看>>
beta冲刺第三天
查看>>
beta第二天
查看>>
工作中常用的但是又容易忽略的问题
查看>>