The code and its output. 它似乎没有用,我也不知道为什么。
myFile.close()
myFile2 = open('Twitter_Sayings.txt', 'r', encoding="utf-8")
newline = "\n"
fileLines = myFile2.readlines()
for line in fileLines:
print(line)
if newline in line:
line.replace("\n", "")
print(fileLines)
答案 0 :(得分:1)
字符串在Python中是不可变的,因此,所有修改字符串的方法都将返回一个新的字符串对象,并且不会对原始对象进行突变。然后,您必须用列表中的新字符串替换原件:
# you need the index, as rebinding the loop variable 'line' won't affect the list
for i in range(len(fileLines)):
# use return value and put it back in the list
fileLines[i] = fileLines[i].replace("\n", "")
print(fileLines)
答案 1 :(得分:1)
处理此问题的标准方法是使用rstrip
方法。
with myFile2 = open('Twitter_Sayings.txt', 'r', encoding="utf-8") as myFile2:
for line in myFile2:
line = line.rstrip("\n")
# Other processing
print(line)
答案 2 :(得分:0)
readlines
从您正在阅读的行中删除换行符,但是
print
打印自己的换行符。如果您不想换行,则应使用print(line, end='')
。
此外:
line.replace("\n", "")
无效,首先是因为readlines
不会产生带有换行符的字符串,其次是因为replace
返回了一个新字符串,您没有将其存储在任何地方。 / li>
print(fileLines)
将打印fileLines
的“ repr”(表示形式);这将包括数组语法,字符串定界符等,看起来像['line 1', 'line 2', ...]
。