python输入/输出
1)输出方式:
1、表达式语句
2、print()函数
3、文件对象的write()(标准输出文件可以用sys.stdout引用)
2)输出格式:
1、str.format():格式化输出值
a、括号及其里面的字符(称作格式化字段) 将会被 format()中的参数替换:
eg:>>> print(‘{}先森: {}!‘.format(‘yangrongkuan‘, ‘就读于华师‘))
#输出:yangrongkuan先森:就读于华师!
b、在括号中的数字用于指向传入对象在format()中的位置:
eg:>>> print(‘{0} 和 {1}‘.format(‘yang‘, ‘rong‘))#输出:yang和rong
>>> print(‘{1} 和 {0}‘.format(‘rong‘, ‘kuan‘))#输出:kuan和rong
c、如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数:
eg: >>> print(‘{name}大哥:{role}‘.format(name=‘杨‘, role=‘is a student‘))
#输出:杨大哥:is a student
d、位置和关键字参数可以任意组合:
eg:>>> print(‘学生序列 {0}, {1}, and {a}。‘.format(‘yang‘, ‘rong‘, a=‘kuan‘))
#输出:学生列表 yang,rong,and kuan
e、可选项‘:‘和格式标识符可以跟着字段名。如:将 Pi 保留到小数点后三位:
eg:>>> import math
>>> print(‘常量 PI 的值近似为 {0:.3f}。‘.format(math.pi))#输出:3.142
f、在‘:‘后传入一个整数,可以保证该域至少有这么多的宽度。如:
eg:>>> student = {‘yangrongkuan‘: 1}
>>> for name, number in table.items():
... print(‘{0:20} ==> {1:10d}‘.format(name, number))#保证输出==>前后的宽度
g、处理很长的格式化字符串,但不想将它们分开, 可通过变量名完成:传入字典,然后使用‘[]‘来访问键值。
eg:>>> table = {‘yang‘: 1, ‘rong‘: 2, ‘kuan‘: 3}
>>> print(‘kuan: {0[kuan]:d}; yang: {0[yang]:d}; rong: {0[rong]:d}‘.format(table))
#输出:kuan: 3;yang: 1;rong: 2
2、repr()和str()可以将输出的值转换成字符串。
区别:repr()可以产生一个解析器易读的表达形式;str()返回一个用户易读的表达形式。
3、str.rjust():可以将字符串靠右,并在左边填充空格。(ljust,向左对其,在右边补空格;center,让字符串居中,在左右补空格)
4、str.zfill(width):width指定字符串的长度(包括符号,如小数点,负号等)。原字符串右对齐,会在数字的左边填充0直至到指定width大小,如果原字符串长度已经大于或者等于width的值,则不作任何操作。
eg:>>> ‘12‘.zfill(5) #输出:‘00012‘
>>> ‘-3.14‘.zfill(7) #输出:-003.14
>>> ‘3.14159265359‘.zfill(5) #输出:3.14159265359
5、旧式字符串格式化:‘%‘:将左边的参数格式化字符串, 而将右边的代入, 然后返回格式化后的字符串:
eg:>>> import math
>>> print(‘常量 PI 的值近似为:%5.3f。‘ % math.pi)#输出:常量 PI 的值近似为:3.142。
3)读取键盘输入:input():从标准输入中读入一行文本,默认标准输入是键盘。另外也可以接收一个python表达式作为输入,并将结果输出。
eg:>>>str = input("请输入:");
>>>print ("你输入的内容是: ", str)
输出:
请输入:yangrongkuan
你输出的内容是:yangrongkuan
4)读写文件
1、语法:open(filename,mode):open()将会返回一个file对象:filename表示你要访问的文件名称的字符串值;mode表示打开文件的模式。
附:mode参数是非强制的。打开文件的模式:(‘+‘:追加;‘b‘:以二进制格式打开文件)
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
r+:打开一个文件用于读写。文件指针将会放在文件的开头。((rb+:以二进制格式打开))
w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除(所有的内容)。如果该文件不存在,创建新文件。(wb:以二进制格式打开)
w+:打开一个文件用于读写。若该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除(所有的内容)。如果该文件不存在,创建新文件。(wb:以二进制格式打开)
a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。(ab:以二进制格式打开)
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。(ab+:以二进制格式打开)
实例:
eg:
# 打开一个文件
f = open("D:/test.txt", "w")#直接复制文件所在路径会出现‘\‘,‘/‘的问题,window系统文件的路径是‘\‘
f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
# 关闭打开的文件
f.close()
备注:直接复制文件所在路径会出现‘\‘,‘/‘的问题,window系统文件的路径是‘\‘,python用的也是‘\‘作为转义字符,所以会导致解析器解析文件路径错误。可以直接将‘\‘改为‘/‘即可,或者在含有转义字符的字符串前加‘r‘表示字符串不作转义处理。
5)文件对象方法
1、f.read(size):读取文件内容,size是读取数据的数目,若不带参,则默认将文件的所有内容都读取并且返回。
2、f.readline():从文件中读取单独的一行。换行符为 ‘\n‘。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
3.f.readlines():将返回该文件中包含的所有行。如果设置可选参数sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。
或者以迭代访问的方式:
f = open("D:/test.txt", "r")
for line in f:
print(line, end=‘‘)
f.close()
4、f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。如果要写入一些不是字符串的东西,要先进行转换:
eg:
f = open("D:/test.txt", "r")
value = (‘www.runoob.com‘, 14)
s = str(value)
f.write(s)
f.close()
5、f.tell():返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。
6、f.seek(offset,from_what)函数:改变文件当前的位置:from_what的值,如果是0表示开头,如果是1表示当前位置,2表示文件的结尾。
seek(x,0):从起始位置即文件首行首字符开始移动 x 个字符:移动位数不包括自身位置起算:
seek(x,1):表示从当前位置往后移动x个字符
seek(-x,2):表示从文件的结尾往前移动x个字符:移动位数包括自身位置起算:
如:(from_what 值为默认为0,即文件开头。)
>>> f = open(‘D:/test.txt‘, ‘rb+‘)
>>> f.write(b‘0123456789abcdef‘)#b应该是指代二进制的意思,不算在字符里面
>>> f.seek(5) #输出:5
>>> f.read(1) #从当前的位置输出一个字符,输出:b‘5‘
>>> f.seek(-3, 2)#移动到文件的倒数第三字节,输出:13
>>> f.read(1) #从当前的位置输出一个字符,输出:b‘d‘
7、f.close():调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。
原文地址:https://www.cnblogs.com/yangrongkuan/p/12079616.html