[英]How to print a statement in a single line
我無法在 cli 的一行中打印輸出語句。 該行分為 3 行。 我嘗試使用打印功能打印它,然后嘗試使用像print "......",
這樣的逗號print "......",
現在我使用的是format
樣式,但它們都不起作用。
任何人都可以看看這個請。
下面是我的代碼:
self.length = len(self.src_mnt)
for copy in range(0, self.length):
self.src_mnt[copy] = self.src_mnt[copy].replace('\/','/')
self.tgt_mnt[copy] = self.tgt_mnt[copy].replace('\/','/')
self.getSrcCount = 'cd'+' '+self.src_mnt[copy]+';'+' '+'ls -l | wc -l'
self.srcWord = subprocess.Popen(self.getSrcCount, shell=True,
stdout=subprocess.PIPE,)
self.srcWc = self.srcWord.communicate()[0]
self.getTgtCount = 'cd'+' '+self.tgt_mnt[copy]+';'+' '+'ls -l | wc -l'
self.tgtWord = subprocess.Popen(self.getTgtCount, shell=True,
stdout=subprocess.PIPE,)
self.tgtWc = self.tgtWord.communicate()[0]
if self.srcWc == self.tgtWc:
self.srcMsg = "Copied: %s files out of %s from %s to %s" % (
str(self.tgtWc), str(self.srcWc), self.src_mnt[copy], self.tgt_mnt[copy])
print self.srcMsg
下面是我的輸出:
我需要在一行中輸出。
值self.srcWc
和self.tgtWc
已經是字符串,並且在每個字符串的末尾似乎有\\n
換行符。
您可以使用 string strip()
方法刪除換行符,該方法將刪除任何前導或尾隨空格。 嘗試類似:
self.srcWord = subprocess.Popen(self.getSrcCount, shell=True, stdout=subprocess.PIPE,)
self.srcWc = self.srcWord.communicate()[0].strip()
您可能希望在打印之前刪除所有換行符。 例如:
>>> s = 'Abc \n new-line'
>>> print 'Hi %s' % s
Hi Abc
new-line
>>> s = s.replace('\n', '')
>>> print 'Hi %s' % s
Hi Abc new-line
通常,通過Popen.communicate()
方法獲得的輸出字符串元組將每個包含一個或多個以換行符結尾的行。 將其分解為行列表並刪除換行符的一種簡單方法是使用字符串方法splitlines()
。 要將其應用於stdoutdata
捕獲的stdoutdata
,請將代碼中的以下指示行更改為以下內容:
self.srcWc = self.srcWord.communicate()[0].splitlines()[0]
和
self.tgtWc = self.tgtWord.communicate()[0].splitlines()[0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.