我正在尝试打印文件中的行,但没有“ \ n”

时间:2018-07-26 00:51:03

标签: python

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)

3 个答案:

答案 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', ...]