我對python比較陌生,所以我想知道是否可以調用python從交互式python外部讀取字符串(或需要執行的代碼),類似於exec()在Python中的工作方式。 基本上,我想知道是否有任何方法讓Python從命令行或其他方式讀取代碼,而不是必須將該代碼保存在「file.py」或其他類似文件中。 我想避免運行這個:python file.py
,因爲我希望避免需要文件名。 我四處尋找解決辦法,發現Execute python commands passed as strings in command line using python -c和Python - How do I pass a string into subprocess.Popen (using the stdin argument)?。第一個答案似乎是我想要的,但是我缺乏如何將字符串傳遞到stdin的知識部門,所以如果有人能夠更好地解釋該方法(如果它是正確的答案),我將不勝感激。第二個鏈接是我在查找stdin時發現的,並且看起來很有希望,但是在執行後,我意識到,從我的理解中,我仍然需要某種子進程的文件名。 我打算使用它以便在Jupyter Notebook或任何類似的程序中使用,因此當我運行一個數據單元時,它可以在Python中執行或返回錯誤消息,但首先要做的是必須瞭解如何在不需要文件名的情況下引用我想要的語言。感謝您的時間和考慮!如何在不提供文件名的情況下執行python?
回答
它有點不清楚你想要用這個,但這裏是你好世界使用命令行選項(-c)而不用管道輸入它。這只是運行的字符串,就好像它是在python解釋器或腳本中。
python -c "print('hello world')"
如果你真的想從標準,你可以使用這樣的運行代碼:
echo "for i in range(100):\n\tprint(i)" | python -c "import sys;print('hello world');exec(''.join([item for item in sys.stdin]))"
有更多關於如何在手冊頁或python documentation使用命令行工具。使用
python -c "my_var = 'my name is john';print(my_var)"
注意
1):
我很感激幫助,但我一直在尋找可以提供多個字符串的答案。我發現在https://stackoverflow.com/questions/10768584/execute-python-commands-passed-as-strings-in-command-line-using-python-c中的方法,但作爲第一個反應聲明,它不能打印多於一個字符串。 'python -c「x ='hello',print(x)」'似乎不起作用。你知道如何傳遞python代碼到標準輸入,顯然這是答案,但我不熟悉 –
這將無法正常工作,但python -c「x ='hello'; print(x)」does –
您可以使用以下你分開命令。 2)你需要使用「」和裏面輸入命令。
- 1. 如何在不執行檢出的情況下鎖定文件
- 2. 默認情況下如何在python 3下運行.py可執行文件?
- 3. 如何在不執行my_dict = {}的情況下清空Python字典?
- 4. 如何在不執行Python腳本的情況下提取變量?
- 5. 如何在不導致磁盤讀取的情況下提供靜態文件?
- 6. 如何在不使用文件STDOUT的情況下爲php提供STDIN
- 7. 如何在沒有構建文件的情況下執行Ant
- 8. OAuth 2 - 如何在不提供權限的情況下登錄
- 9. ReactJS - 無法在不提供HTTP文件的情況下運行babel代碼
- 10. 如何在沒有密碼提示的情況下執行mysqldump?
- 11. 如何在沒有路徑的情況下運行python文件?
- 12. 如何在沒有文件名的情況下運行javascript
- 13. 如何在不提交表單的情況下上傳文件?
- 14. 在沒有STATIC_URL的情況下用Django提供靜態文件
- 15. 如何在不執行插件的情況下部署父節點文件
- 16. 如何在沒有「/ static」前綴的情況下在Django中提供文件
- 17. 如何在沒有XAMPP的情況下在Windows中提供PHP文件?
- 18. 如何在文件不存在的情況下執行某些命令?
- 19. python如何讓bash腳本在不可執行的情況下運行?
- 20. PHP在這種情況下提供文件併發性嗎?
- 21. 如何在沒有控制器的情況下手動提供.cshtml文件?
- 22. 如何在沒有單獨文件的情況下爲程序提供stdin?
- 23. 如何在沒有web.config的情況下從Azure公開和提供WOFF文件?
- 24. C++:如何在不傳遞命令的情況下執行文件?
- 25. 如何在不發佈java -jar的情況下執行JAR文件?
- 26. 如何在不破壞它的情況下修改可執行文件?
- 27. 如何在不打開終端的情況下啓動可執行文件?
- 28. 如何在不等待結果的情況下執行sh文件?
- 29. 如何在不修改現有html文件的情況下執行javascript函數?
- 30. 需要額外提供數據:如何在不進行AJAX調用的情況下執行此操作?
您可以將代碼傳送到解釋器中。 –
@克勞斯D.你能詳細說明一下嗎?我已經嘗試使用下列代碼管道:'def exec_py(code): proc = subprocess.Popen([「python」,'f'],stdin = subprocess.PIPE,stdout = STDOUT,stderr = subprocess.PIPE,shell =假) 值return_code = proc.wait() proc.stdin.write( '代碼') 出= proc.stdout.read() ERR = proc.stderr.read() 如果(ERR): 返回(err.decode(「utf-8」)) else: return(out.decode(「utf-8」))'通過在Jupyter中運行單個單元來給出代碼,但它又需要一個文件命名爲'f',我無法提供。 –
只是...不提供文件名?運行'python'。 – user2357112