python: line=f.readlines() 后如何消除line中的’\n’

#!/ust/bin/env python3

f = open("name.txt")
date = f.readlines()
print(date)
f.close()

#结果:
#[‘eray\n‘, ‘eray\n‘, ‘bike\n‘]
#打印出来的带 \n ,怎么去掉\n呢?

#解决方法:
#1、
f = open("name.txt")
date = f.read().splitlines()
print(date)
f.close()
#结果:
#[‘eray‘, ‘eray‘, ‘bike‘]

#2、
f = open("name.txt")
date = f.readlines()
#date = date.strip(‘\n‘)
date = ‘‘.join(date).strip(‘\n‘)
print(date)
f.close()
#结果:

eray
eray
bike

第2中,注释掉的这行

#date = date.strip(‘\n‘)     #如果去掉注释,会报如下错误:

原因:

提示信息中提到list中没有strip的这种属性。而我们知道,strip是字符串的属性,说明f.readlines返回的是一个列表。所以会导致出错。

既然f.readlines()返回的是列表,而strip是字符串的属性,不难想到只要我们将f.readlines()返回的列表转换成字符串就能 用strip这个属性了。那么怎么将列表转为字符串呢?这里用的是字符串的join属性。

line = ‘‘.join(line)    #这样就将列表转换成字符串了。

如上图实例。

strip函数用法:

函数原型

声明:s为字符串,rm为要删除的字符序列

s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符

s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符

s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

注意:

1. 当rm为空时,默认删除空白符(包括‘\n‘, ‘\r‘,  ‘\t‘,  ‘ ‘)

时间: 2024-10-11 01:15:50

python: line=f.readlines() 后如何消除line中的’\n’的相关文章

Python List数据打印后,更改List中的值报语法错误

number_list = [1,3,5,7,9] mix = ["python","12"] second_num = number_list[1] one_number = mix[0] print("one is {0} second is {1}".format(one_number, second_num) mix[1] = 100 print(mix) mix[1] = 100 报语法错误.如果注释掉打印语句则没有问题. ......

android修改布局后遇到 Incorrect line ending: found carriage return (\r) without corresponding newline (\n) 错误

遇到这个问题,只需要在eclipse中的Project选项菜单中选择clean,选中当前的项目.clean之后就不会报错了. 如图: Clean will discard all build problems and built states. The projects will be rebuilt from scratch. 大致意思就是Clean之后 ADT会清除之前编译产生的文件和保存的状态. 重新编译就好了. 总之遇到特别奇怪的bug时,不妨clean之后,重新编译一次,也许就解决了.

python read() readline() readlines() write() writelines()方法总结与区别

python read() readline() readlines() write() writelines()方法总结与区别 输出: read()方法用于直接读取字节到字符串中,可以接参数给定最多读取的字节数,如果没有给定,则文件读取到末尾. readline()方法读取打开文件的一行(读取下个行结束符之前的所有字节),然后整行,包括行结束符,作为字符串返回. readlines()方法读取所有行然后把它们作为一个字符串列表返回 文件/home/pjc/python/pjc.txt的内容如下

[硕.Love Python] FibonacciHeap(F堆 & 斐波那契堆)

class Node(object):     __slots__ = [         'data', 'child', 'left', 'right',         'degree', 'parent', 'childCut',     ]     def __init__(self, data):         self.data = data         self.child = None         self.left = None         self.right

(转载)Python IDLE reload(sys)后无法正常执行命令的原因

通常大多数人执行reload(sys)这条语句其实仅仅是为了能够修改Python的默认字符集,也就是能够调用sys.setdefaultencoding().但是如果在IDLE中执行reload(sys),就会导致接下来无法正常执行任何命令. 起初遇到这个问题也是束手无策,后来无意间在stackoverflow上看到有人说到了这个问题.原来是因为IDLE作为一个GUI Shell环境,在启动初始化过程中,会设置特定的标准输入.标准输出和标准错误输出,使得输入和输出都在IDLE的GUI Shell

Python sys.setdefaultencoding('utf-8') 后就没输出

为了解决Python的 UnicodeDecodeError: 'ascii' codec can't decode byte ,我们可以加入以下代码. import sys reload(sys) sys.setdefaultencoding('utf-8') 但是在编辑的时候发现,普通的输出却不见了,如图 print 1都没反应. 查资料后解决,原来reload(sys)的时候,sys.stdout 这个参数被重置为了ipython 的对象,导致无法输出.因此可以用以下代码代替 import

python多版本配置后使用pip出现 Fatal error in launcher: Unable to create process using '"'

上一篇刚介绍了python的多版本环境配置,然后再我把python2的python.exe改成python2.exe之后,python2的pip就不好使了,出现了如题的错误... 然后解决办法也很简单,虽然略麻烦了一些 输入 python2 -m pip install XXX即可,上图: 这里numpy我已经装过了,所以这样显示,正常应该就是collecting XXXXX python多版本配置后使用pip出现 Fatal error in launcher: Unable to creat

【IntellJ IDEA】idea启动测试类报错Error running 'Test1.test': Command line is too long. Shorten command line for Test1.test or also for JUnit default configuration.

idea启动测试类报错 Error running 'Test1.test': Command line is too long. Shorten command line for Test1.test or also for JUnit default configuration. 注意: 最简单的方法,就是你重新创建一个新的测试类,在里面重新写一遍测试方法,代码都可以粘贴过去. 解决方法: 1.打开本项目的.idea文件夹,找到文件夹中的workspace.xml文件 2.搜索 Proper

Command line is too long. Shorten command line for *** or also for Spring Boot default configuration

错误信息: Command line is too long. Shorten command line for *** or also for Spring Boot default configuration 通常会导致的后果是无法启动项目. 解决办法: 修改项目下 .idea\workspace.xml,找到标签 , 在标签里加一行 <property name="dynamic.classpath" value="true" /> 参考解决办法链