簡體   English   中英

復制然后粘貼在python終端mac中產生垃圾

[英]copy then paste produces garbage in python terminal mac

我在Mac OS X(10.14.3)上使用文本編輯器(Sublime Text 3),在另一個窗口中是運行python(3.7)解釋器的Terminal窗口。

我從Sublime復制的代碼(使用cmd + c)是

def count_numbers():
    for i in range(10):
        if i % 3 == 0 : 
            print (i)

count_numbers()

但是,當我將粘貼復制到終端時(包括打開python解釋器的命令),我得到的輸出是:

$ python
Python 3.7.2 (default, Dec 30 2018, 08:55:50) 
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

[這是我按cmd + v的位置 ]

>>> def count_numbers():
...         return a * x + b
... z=[invcdf(random()) for i in range(10)]
  File "<stdin>", line 3
    z=[invcdf(random()) for i in range(10)]
    ^
SyntaxError: invalid syntax
>>>     if t2 is None:
  File "<stdin>", line 1
    if t2 is None:
    ^
IndentationError: unexpected indent
>>>         # print (i)
... 
>>> count_numbers()

其他混合代碼來自我昨天編寫的某些python。 從那時起,我已經使用了無數次復制/粘貼操作,所以我不明白為什么我最近的復制(cmd + v)會引導昨天的工作,同時出現明顯的縮進錯誤,今天的代碼等等。

鍵入command + shift + v並不更好:只是不同的垃圾。

到底是怎么回事?

Mac OS X:MacPorts安裝的10.14.3 python
未安裝Tkinter:我不喜歡IDLE。

我使用的配置類似於您的配置,命令行+ Xcode,我嘗試將您的代碼從IDE復制並粘貼到命令行中,並且一切正常。 因此,我認為問題不在命令行內。 我將檢查剪貼板(“查找器”->“編輯”->“顯示剪貼板”)以查看代碼是否被正確復制,它應該與在IDE中看起來完全一樣。 如果不是,那么我建議注釋掉不需要的代碼,然后直接從命令行運行文件。

.py文件可以直接從命令行運行,而無需使用python3 path/to/file命令啟動python解釋器,為此,您可以將文件直接拖到終端中,它將自動輸入路徑。 通過使用解釋器shebang #!可以進一步簡化此操作#! 在.py文件本身中。 可以通過導入系統import sysprint(sys.executable)來找到解釋器的路徑。 這給出了解釋器的路徑,然后將shebang添加到該路徑,並將其放在.py文件的頂部,對我來說,它看起來像這樣: #!/Library/Frameworks/Python.framework/Versions/3.7/bin/python3 ,但是由於是從MacPort安裝的,因此可能有所不同。 通過使用shebang,只需輸入文件路徑即可在命令行中運行腳本。 例如,將文件拖到終端中,按Enter鍵,它將運行。 您還可以使用shift + up arrow的終端快捷方式,然后按Enter鍵再次運行最后一個命令,從而節省了將文件拖到終端中的時間。

好,

最終發現,pboard進程已損壞。
修復的最佳方法是在活動監視器或終端中pboard進程

使用

http://tips.applenws.com/copy-paste-not-working-on-mac-heres-how-to-fix-a-stuck-clipboard/2018/tips-tricks

現在一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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