问题描述
我编写了这段代码以删除字符串中的所有新行”,但它会用\ 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')