python 3从字符串

问题描述

我编写了这段代码删除字符串中的所有新行”,但它会用\ n打印该值 我仍然得到以下输出:4762-9539 \ n' 如何从该字符串中删除所有\ n?

#!/usr/bin/python3


import os
import subprocess


bash_command_lsbk = 'lsblk /dev/sdb1 > /home/user/Downloads/usb_id'
file_path = '/home/user/Downloads/ddd'
usb_id = '/home/user/Downloads/usb_id'
read_permission = 'r'
write_permission = 'w'


def print_usb_id():
    url = os.system(bash_command_lsbk)
    line = str(subprocess.check_output(['tail','-1',usb_id])).split('/')[-1]
    x = open(file_path,write_permission)
    x.write(line)


def read():
    with open(file_path,'r') as new_file_format:
        for new_line in new_file_format:
            new_line = new_line.rstrip('\n')
            print(new_line)



if __name__ == '__main__':
    print_usb_id()
    read()

解决方法

您没有将字节字符串正确转换为字符串。这就是为什么在字符串中添加其他字符的原因。 代替

str(subprocess.check_output(['tail','-1',usb_id]))

您应该写

subprocess.check_output(['tail',usb_id]).decode('utf-8')