簡體   English   中英

如何在一行中打印語句

[英]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.srcWcself.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM