在使用“end”时有没有避免换行的方法=`

2024-03-29 05:10:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始使用python,我正在创建一个简单的程序,它将询问用户是谁,然后从文本文件中提取一行并打印该行,最后我将添加他们的答案。这是密码。你知道吗

    question = input("do you want to print the line")
    if "yes" in question:
        print(open("tp.txt").readlines()[:10][-1],end=question) 

问题是,end=question)将用户的答案放在了新的一行。我知道end=\n是一样的。所以我只是想知道有没有一种方法或替代方法来阻止'end='自动创建新行?你知道吗

 print(open("tp.txt").readlines()[:10][-1],

是我打开并从文件中读取特定行的方式 因为这是一个“好”的捷径,而不是做with open (filename.txt,'r') as f:


Tags: 方法答案用户程序txt密码inputopen
1条回答
网友
1楼 · 发布于 2024-03-29 05:10:04

问题是readlines()返回的行包含结尾换行符:

$ echo 'a
> b
> c
> ' > test_file.txt
$ python3
Python 3.5.2 (default, Jul  5 2016, 12:43:10) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> with open('test_file.txt') as f:
...     print(f.readlines())
... 
['a\n', 'b\n', 'c\n', '\n']

看到\n了吗?请注意以下区别:

>>> print('a\n')
a

>>>

以及:

>>> print('a')
a
>>>

所以你想去掉它:

>>> with open('test_file.txt') as f:
...     for line in f:
...         print(line.rstrip('\n'), end='<something>')
... 
a<something>b<something>c<something><something>>>> 

相关问题 更多 >