python 文件处理 -- 02 文件属性&标准输入输出&命令行参数&文件编码

1文件属性

file.fileno()--文件描述符

file.mode--文件当前打开的权限

file.encoding--文件编码格式(无输出表明为ASCII码)

file.closed--文件是否被关闭

>>> f.fileno()

3

>>> f.mode

‘r+‘

>>> f.encoding

>>> f.closed

False

>>> filter(lambda s:s[:2]!=‘__‘,dir(f))

[‘close‘, ‘closed‘, ‘encoding‘, ‘errors‘, ‘fileno‘, ‘flush‘, ‘isatty‘, ‘mode‘, ‘name‘, ‘newlines‘, ‘next‘, ‘read‘, ‘readinto‘, ‘readline‘, ‘readlines‘, ‘seek‘, ‘softspace‘, ‘tell‘, ‘truncate‘, ‘write‘, ‘writelines‘, ‘xreadlines‘]

2标准文件

标准输入文件--sys.stdin

标准输出文件--sys.stdout

标准错误文件--sys.stderr

可以使用这三者来实现将python程序运行的stdout和stderr重定向到文件中

例--重定向stdout

#stdout.py

import sys

print ‘Dive in‘

saveout = sys.stdout

fsock = open(‘out.log‘, ‘w‘)

sys.stdout = fsock # 此处之后的print就会被打印到out.log中

print ‘This message will be logged instead of displayed‘

sys.stdout = saveout

fsock.close()   #还原stdout

参考:http://blog.csdn.net/lanbing510/article/details/8487997

3文件命令行参数

通过sys模块的argv属性来接收命令行参数。返回一个list,list[0]为脚本名,list[1:]均为参数。

***argv.py文件内容

# argv.py

import sys

print ‘test----‘

argv_list = sys.argv

print argv_list

***命令行调用

E:\yc_study\python\系统学习--慕课网\文件处理>python argv.py 1 2 3

test----

[‘argv.py‘, ‘1‘, ‘2‘, ‘3‘]

E:\yc_study\python\系统学习--慕课网\文件处理>python argv.py 1 2 age=18

test----

[‘argv.py‘, ‘1‘, ‘2‘, ‘age=18‘]

4文件编码格式

4.1Python字符编码详解

http://www.cnblogs.com/timdes1/p/7747589.html

4.2写入utf-8格式的字符串

>>> f=open(‘unicode_test.txt‘,‘w+‘)

>>> f.read()

‘‘

>>> f.write(u‘哈哈哈‘)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-2: ordinal not in range(128)

>>> des_str=unicode.encode(u‘哈哈哈‘,‘utf-8‘)

>>> f.write(des_str)

>>> f.seek(0,os.SEEK_SET)

>>> f.read()

‘\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88‘

4.3创建utf-8格式的文档

使用codecs模块

>>> f=codecs.open(‘create_utf_8.txt‘,‘w‘,‘utf-8‘)

>>> f.encoding

‘utf-8‘

>>> f.close()

时间: 2024-08-25 12:08:11

python 文件处理 -- 02 文件属性&标准输入输出&命令行参数&文件编码的相关文章

docopt——好用的Python命令行参数解释器

Qingchat使用的命令行参数解释器是 docopt,用下来感觉非常棒,所以决定介绍一下这个库.( 奉劝各位看官,真爱生命,远离argparse. ) 介绍 docopt 本质上是在 Python 中引入了一种针对命令行参数的形式语言,在代码的最开头使用""" 文档注释的形式写出符合要求的文档,就会自动生成对应的parse,体验非常赞. 用法 样例 docopt的使用非常简单,以Qingchat为例,你只需要在代码最开头加入: """Qingc

命令行参数(argc, argv)

每个C语言程序都必须有一个称为main()的函数,作为程序启动的起点.当执行程序时,命令行参数(command-line argument)(由shell逐一解析)通过两个入参提供给main()函数.第一个参数int argc,表示命令行参数的个数.第二个参数char *argv[],是一个指向命令行参数的指针数组,每一参数又都是以空字符(null) 结尾的字符串.第一个字符串,亦即argv[0]指向的,(通常)是该程序的名称.argv中的指针列表以NULL指针结尾(即argv[argc]为NU

[Oracle] SQL*Loader 详细使用教程(2)- 命令行参数

sqlldr工具 SQL*Loader的客户端工具是sqlldr,在操作系统的命令行下输入sqlldr,后面不接任何参数,将显示帮助信息如下所示(所有命令行参数的简单描述及其默认值),所以你并不需要对下面的参数死记硬背,当你忘记它们时,可以通过这个方式快速查询. [plain] view plain copy print? Valid Keywords: userid -- ORACLE username/password control -- control file name log -- 

如何编写一个带命令行参数的Python文件

看到别人执行一个支持命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持命令行参数. 首先你要知道python中的sys模块的一些功能: import sys print "the number of python program's argument:",len(sys.argv) print "the value of every argument

python学习——通过命令行参数根据fasta文件中染色体id提取染色体序列

提取fasta文件genome_test.fa中第14号染色体的序列,其内容如下: >chr1 ATATATATAT >chr2 ATATATATATCGCGCGCGCG >chr3 ATATATATATCGCGCGCGCGATATATATAT >chr4 ATATATATATCGCGCGCGCGATATATATATCGCGCGCGCG >chr5 ATATATATATCGCGCGCGCGATATATATATCGCGCGCGCGATATATATAT >chr6 ATCG

Python 获得命令行参数的方法

本篇将介绍python中sys, getopt模块处理命令行参数 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1: sys.argv[1]参数2: sys.argv[2] test.py 1 import sys 2 print "脚本名:", sys.argv[0] 3 for i in range(1, len(sys.argv)):

python中命令行参数

python中的命令行参数 python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 len(sys.argv)是命令行参数的个数 下面我们用一个简单的例子来说明一下. #!/usr/bin/python #coding:utf-8 import sys ##加载sys这个模块. for i in range(len(sys.argv)): print "第%d个参数是:%s"

go语言之行--文件操作、命令行参数、序列化与反序列化详解

一.简介 文件操作对于我们来说也是非常常用的,在python中使用open函数来对文件进行操作,而在go语言中我们使用os.File对文件进行操作. 二.终端读写 操作终端句柄常量 os.Stdin: 标准输入 os.Stdout: 标准输出 os.Stderr: 标准错误输出 读写示例: package main import ( "fmt" "os" ) var( username,password string ) func main() { fmt.Prin

python 命令行参数解析 argparse简单分析

在python 2.7 后,不推荐使用 optparse, 而推荐使用 argparse. 其它的不多说,简单的分析下我遇到的问题:我是想用 argparse 来解析不定长的命令行参数 例如: import argparse import sys parser = argparse.ArgumentParser(description='test parsing arguments') parser.add_argument('pos1', nargs='*') parser.add_argum