字符串的原样输入输出python格式_python输入输出简记

本文详细介绍了Python中的字符串输入/输出方法,包括使用表达式语句、print()函数、文件对象的write(),以及字符串的格式化输出如str.format(),还有repr()、str()、rjust()、zfill()等方法。此外,还讲解了input()的使用和文件的读写操作,如open()函数的不同模式,并展示了如何读取和写入文件内容。
摘要由CSDN通过智能技术生成

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() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值