เปิดไฟล์ด้วยโปรแกรมบรรทัดคำสั่ง


1

ฉันกำลังมองหาวิธีเปิดไฟล์. py ด้วย Python ในเทอร์มินัลทุกครั้งที่ไฟล์ถูกดับเบิลคลิกในตัวจัดการไฟล์ GUI เช่นใน Windows ฉันจะทำสิ่งนี้อย่างไร

สำหรับ Ubuntu 13.10


@ วิลฟ์ฉันแค่มองหาวิธีการทำเช่นนี้สำหรับไฟล์. py
ExplodingKittens

คำตอบ:


1

ใช้งานได้ใน Unity & Gnome มีสิ่งที่คล้ายกันสำหรับสภาพแวดล้อมเดสก์ทอปอื่น ๆ

คลิกขวาที่ไฟล์และไปที่Propertiesและการอนุญาต ตรวจสอบให้แน่ใจว่ามีการทำเครื่องหมายไว้:

ดำเนินการ - TICK อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม
(คุณต้องมีการทำเครื่องหมายนี้เพื่อให้ไฟล์ทำงานในเทอร์มินัลหรือ 'ถูกเรียกใช้' ซึ่งเหมือนกับการทำงานchmod +x /PATH/TO/FILE)

และตรวจสอบให้แน่ใจว่าสิ่งนี้ภายใต้Behaviourแท็บในการกำหนดค่าตามความชอบของตัวจัดการไฟล์ Nautilus ตั้งค่าเป็น: ไฟล์ข้อความที่ปฏิบัติการได้ - ถามทุกครั้ง

ตอนนี้ทุกครั้งที่คุณคลิกคุณควรจะได้รับ:

คุณต้องการเรียกใช้ EXAMPLE.py หรือแสดงเนื้อหา - ปุ่ม

Run in Terminalคุณสามารถเดาได้
Displayเปิดในตัวแก้ไขข้อความเริ่มต้นที่กำหนดใน 'เปิดด้วย ... ' ในการตั้งค่าไฟล์
Runรันในพื้นหลังโดยไม่มีเทอร์มินัล และนี่คือสิ่งที่จะเกิดขึ้นหากคุณเลือก 'เรียกใช้ไฟล์ข้อความที่ปฏิบัติการได้เมื่อเปิดขึ้นมา' ด้านบน


นี่คือการแก้ไขเพื่อหยุดการปิดทันที - ไปที่Profile Preferencesและข้างใต้Title and Commandตั้งค่า:

'เมื่อคำสั่งออกจาก' เป็น 'เปิดเทอร์มินัลค้างไว้'ตอนนี้เมื่อคุณเรียกใช้สคริปต์เช่นนี้:

#!/usr/bin/python
import time
print "Hello"
time.sleep(5)
print "Goodbye"

(จำ#!/usr/bin/pythonบรรทัดShebang ไม่เช่นนั้นจะไม่สามารถตีความได้อย่างถูกต้องนอกจากนี้คุณยังสามารถใช้#!/usr/bin/env python)

มันเปิดอยู่พักหนึ่งแล้วคุณควรจะได้อะไรเช่น: ป้อนคำอธิบายรูปภาพที่นี่


สิ่งนี้ถือว่าไฟล์ Python เป็นเชลล์สคริปต์ดังนั้นเทอร์มินัลจะเปิดขึ้น แต่เมื่อมันไปอ่านโค้ด Python มันจะทำงานผิดพลาดและปิดเทอร์มินัลทันที โหวตขึ้นสำหรับคำตอบอย่างละเอียดอยู่แล้ว
ExplodingKittens

1
คุณต้องรวมบรรทัดshebangเป็นบรรทัดแรกเพื่อให้ล่ามสามารถทำงานได้ว่าเป็นสคริปต์ไพ ธ อนและรันเป็น ธ อัปเดตคำตอบ
วิลฟ์

บิงโก! เมื่อไม่นานมานี้ฉันได้ทิ้ง Shebang ออกไปและนั่นก็เป็นปัญหา ขอบคุณ!
ExplodingKittens

เขาควรจะสามารถใช้. / pythonfile.py จากเทอร์มินัล
นกฮูก

@owl, ใช่ถ้าไฟล์อยู่ในไดเรกทอรีปัจจุบัน(เป็นเทอร์มินัล) , และเรียกใช้pythonfile.py, และมีสิทธิ์การใช้งาน - แต่นั่นไม่ใช่สิ่งที่ OP ขอ; Silปัญหาของฉันคือฉันมักจะลืมหรือพลาด!! : D
Wilf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.