Hướng dẫn python exec multiple lines - python thực hiện nhiều dòng

Tôi muốn chạy các dòng sau của các lệnh Linux bash bên trong chương trình Python.

Nội phân Chính showShow

  • Phương pháp 1: Exec ()
  • Phương pháp 2: Từ dòng lệnh | python -c + exec ()
  • Phương pháp 3: Sử dụng toán tử ternary để một bộ phận
  • Cuốn sách Python One-Liners: Master The Single Line đầu tiên!
  • Lập trình viên hài hước
  • Làm cách nào để chạy nhiều dòng trong vỏ Python?
  • Làm thế nào để bạn chạy nhiều lệnh trong Python?
  • Làm thế nào để bạn viết một tuyên bố đa dòng trong Python?
  • Làm cách nào để chạy nhiều dòng trong dấu nhắc lệnh?

tail /var/log/omxlog | stdbuf -o0 grep player_new | while read i
do
    Values=$(omxd S | awk -F/ '{print $NF}')
    x1="${Values}"
    x7="${x1##*_}"
    x8="${x7%.*}"
    echo ${x8}
done

Tôi biết rằng đối với một lệnh một dòng, chúng ta có thể sử dụng cú pháp sau:

subprocess.call(['my','command'])

Nhưng, làm thế nào tôi có thể sử dụng

subprocess.call(['my','command'])
0 nếu có một số lệnh trong nhiều dòng!?

Hướng dẫn python exec multiple lines - python thực hiện nhiều dòng

Stephen Rauch ♦

45,7K30 Huy hiệu vàng105 Huy hiệu bạc126 Huy hiệu đồng30 gold badges105 silver badges126 bronze badges

hỏi ngày 18 tháng 2 năm 2017 lúc 6:51Feb 18, 2017 at 6:51

7

Trích dẫn https://mail.python.org/pipermail/tutor/2013-janemony/093474.html: Sử dụng SubProcess.check_output (shell_command, shell = true)
use subprocess.check_output(shell_command, shell=True)

import subprocess
cmd = '''
tail /var/log/omxlog | stdbuf -o0 grep player_new | while read i
do
    Values=$(omxd S | awk -F/ '{print $NF}')
    x1="${Values}"
    x7="${x1##*_}"
    x8="${x7%.*}"
    echo ${x8}
done    
'''
subprocess.check_output(cmd, shell=True)

Tôi đã thử một số ví dụ khác và nó hoạt động.

Đã trả lời ngày 18 tháng 2 năm 2017 lúc 7:20Feb 18, 2017 at 7:20

wt.ccwt.ccwt.cc

1839 Huy hiệu Đồng9 bronze badges

1

Đây là một giải pháp Python thuần túy mà tôi nghĩ không giống như bash của bạn:

logname = '/var/log/omxlog'
with open(logname, 'rb') as f:
    # not sure why you only want the last 10 lines, but here you go
    lines = f.readlines()[-10:]

for line in lines:
    if 'player_new' in line:
        omxd = os.popen('omxd S').read()
        after_ = omxd[line.rfind('_')+1:]
        before_dot = after_[:after_.rfind('.')]
        print(before_dot)

Đã trả lời ngày 18 tháng 2 năm 2017 lúc 7:42Feb 18, 2017 at 7:42

Stephen Rauch ♦ Stephen RauchStephen Rauch

45,7K30 Huy hiệu vàng105 Huy hiệu bạc126 Huy hiệu đồng30 gold badges105 silver badges126 bronze badges

5

hỏi ngày 18 tháng 2 năm 2017 lúc 6:51: To make a Python one-liner out of any multi-line Python script, replace the new lines with a new line character

subprocess.call(['my','command'])
2 and pass the result into the
subprocess.call(['my','command'])
3 function. You can run this script from the outside (command line, shell, terminal) by using the command
subprocess.call(['my','command'])
4.

Trích dẫn https://mail.python.org/pipermail/tutor/2013-janemony/093474.html: Sử dụng SubProcess.check_output (shell_command, shell = true)

Tôi đã thử một số ví dụ khác và nó hoạt động.: Given a multi-line code script in Python. How to execute this multi-line script in a single line of Python code? How to do it from the command line?

Đã trả lời ngày 18 tháng 2 năm 2017 lúc 7:20: Say, you have the following for loop with a nested if statement in the for loop body. You want to run this in a single line from your command line?

x = 10
for i in range(5):
    if x%2 == 0:
        print(i)
    else:
        print(x)
    x = x - 1

'''
0
9
2
7
4
'''

1839 Huy hiệu Đồng

Đây là một giải pháp Python thuần túy mà tôi nghĩ không giống như bash của bạn:

  • Phương pháp 1: Exec ()
  • Phương pháp 2: Từ dòng lệnh | python -c + exec ()
  • Phương pháp 3: Sử dụng toán tử ternary để một bộ phận
  • Cuốn sách Python One-Liners: Master The Single Line đầu tiên!
  • Lập trình viên hài hước

Phương pháp 1: Exec ()

Làm cách nào để chạy nhiều dòng trong vỏ Python?

Làm thế nào để bạn chạy nhiều lệnh trong Python?

# Method 1
exec('x = 10\nfor i in range(5):\n    if x%2 ==0: print(i)\n    else: print(x)\n    x = x-1')

Làm thế nào để bạn viết một tuyên bố đa dòng trong Python?

'''
0
9
2
7
4
'''

Làm cách nào để chạy nhiều dòng trong dấu nhắc lệnh?

Tôi biết rằng đối với một lệnh một dòng, chúng ta có thể sử dụng cú pháp sau:: Remove the else branch of this code. What’s the output? Run the code to check if you were right!

Phương pháp 2: Từ dòng lệnh | python -c + exec ()

Nhưng, làm thế nào tôi có thể sử dụng

subprocess.call(['my','command'])
0 nếu có một số lệnh trong nhiều dòng!?

Stephen Rauch ♦

45,7K30 Huy hiệu vàng105 Huy hiệu bạc126 Huy hiệu đồng

PS C:\Users\xcent> python -c "exec('x = 10\nfor i in range(5):\n    if x%2 ==0: print(i)\n    else: print(x)\n    x = x-1')"
0
9
2
7
4

Phương pháp 3: Sử dụng toán tử ternary để một bộ phận

hỏi ngày 18 tháng 2 năm 2017 lúc 6:51

Trích dẫn https://mail.python.org/pipermail/tutor/2013-janemony/093474.html: Sử dụng SubProcess.check_output (shell_command, shell = true)

# Method 3
for i in range(5): print(10-i) if i%2 else print(i)

Tôi đã thử một số ví dụ khác và nó hoạt động.

Cuốn sách Python One-Liners: Master The Single Line đầu tiên!

Lập trình viên hài hước

Làm cách nào để chạy nhiều dòng trong vỏ Python?concise statements of useful functionality packed into a single line of code. You’ll learn how to systematically unpack and understand any line of Python code, and write eloquent, powerfully compressed Python like an expert.

Làm thế nào để bạn chạy nhiều lệnh trong Python?

Làm thế nào để bạn viết một tuyên bố đa dòng trong Python?key computer science concepts and boost your coding and analytical skills. You’ll learn about advanced Python features such as list comprehension, slicing, lambda functions, regular expressions, map and reduce functions, and slice assignments.

Bạn cũng sẽ học cách:

  • Tận dụng các cấu trúc dữ liệu để giải quyết các vấn đề trong thế giới thực, như sử dụng lập chỉ mục Boolean để tìm các thành phố có ô nhiễm trên trung bìnhsolve real-world problems, like using Boolean indexing to find cities with above-average pollution
  • Sử dụng những điều cơ bản của Numpy như mảng, hình dạng, trục, loại, phát sóng, lập chỉ mục nâng cao, cắt lát, sắp xếp, tìm kiếm, tổng hợp và thống kêNumPy basics such as array, shape, axis, type, broadcasting, advanced indexing, slicing, sorting, searching, aggregating, and statistics
  • Tính toán số liệu thống kê cơ bản của các mảng dữ liệu đa chiều và các thuật toán có nghĩa K để học tập không giám sátstatistics of multidimensional data arrays and the K-Means algorithms for unsupervised learning
  • Tạo các biểu thức chính quy nâng cao hơn bằng cách sử dụng nhóm nhóm và các nhóm được đặt tên, Lookahead tiêu cực, ký tự thoát, không gian trắng, bộ ký tự (và bộ ký tự tiêu cực) và các toán tử tham lam/nongreedyadvanced regular expressions using grouping and named groups, negative lookaheads, escaped characters, whitespaces, character sets (and negative characters sets), and greedy/nongreedy operators
  • Hiểu được một loạt các chủ đề khoa học máy tính, bao gồm các phương pháp, palindromes, supersets, hoán vị, giai thừa, số nguyên tố, số fibonacci, obfuscation, tìm kiếm và phân loại thuật toáncomputer science topics, including anagrams, palindromes, supersets, permutations, factorials, prime numbers, Fibonacci numbers, obfuscation, searching, and algorithmic sorting

Đến cuối cuốn sách, bạn sẽ biết cách viết Python ở tinh tế nhất và tạo ra những tác phẩm nghệ thuật Python Python ngắn gọn, đẹp đẽ chỉ trong một dòng.write Python at its most refined, and create concise, beautiful pieces of “Python art” in merely a single line.

Nhận Python Oneer của bạn trên Amazon !!

Lập trình viên hài hước

import subprocess
cmd = '''
tail /var/log/omxlog | stdbuf -o0 grep player_new | while read i
do
    Values=$(omxd S | awk -F/ '{print $NF}')
    x1="${Values}"
    x7="${x1##*_}"
    x8="${x7%.*}"
    echo ${x8}
done    
'''
subprocess.check_output(cmd, shell=True)
2

import subprocess
cmd = '''
tail /var/log/omxlog | stdbuf -o0 grep player_new | while read i
do
    Values=$(omxd S | awk -F/ '{print $NF}')
    x1="${Values}"
    x7="${x1##*_}"
    x8="${x7%.*}"
    echo ${x8}
done    
'''
subprocess.check_output(cmd, shell=True)
3

Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.

Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer (Nostarch 2020), đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.

Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.

Làm cách nào để chạy nhiều dòng trong vỏ Python?

Bạn không thể chia một câu lệnh thành nhiều dòng trong Python bằng cách nhấn Enter. Thay vào đó, hãy sử dụng dấu gạch chéo ngược (\) để chỉ ra rằng một câu lệnh được tiếp tục trên dòng tiếp theo. Trong phiên bản sửa đổi của tập lệnh, một không gian trống và dấu gạch dưới cho thấy câu lệnh được bắt đầu trên dòng 1 được tiếp tục trên dòng 2.use the backslash ( \ ) to indicate that a statement is continued on the next line. In the revised version of the script, a blank space and an underscore indicate that the statement that was started on line 1 is continued on line 2.

Làm thế nào để bạn chạy nhiều lệnh trong Python?

Bạn có thể chuỗi các lệnh cùng nhau bằng cách sử dụng các toán tử shell tích hợp (&&, ||,;, v.v.).using built-in shell operators ( && , || , ; , etc.).

Làm thế nào để bạn viết một tuyên bố đa dòng trong Python?

Tuyên bố đa dòng trong Python: Trong Python, các câu lệnh thường được viết trong một dòng duy nhất và ký tự cuối cùng của các dòng này là Newline. Để mở rộng câu lệnh sang một hoặc nhiều dòng, chúng ta có thể sử dụng niềng răng {}, dấu ngoặc đơn (), vuông [], bán đại tá, và ký tự tiếp tục chém \ \.To extend the statement to one or more lines we can use braces {}, parentheses (), square [], semi-colon “;”, and continuation character slash “\”.

Làm cách nào để chạy nhiều dòng trong dấu nhắc lệnh?

Lời nhắc lệnh Windows (cmd.exe) cho phép ký tự ^ (Shift + 6) được sử dụng để chỉ ra tiếp tục dòng. Nó có thể được sử dụng cả từ dấu nhắc lệnh bình thường (thực sự sẽ nhắc người dùng để biết thêm đầu vào nếu được sử dụng) và trong một tệp hàng loạt.^ (Shift + 6) character to be used to indicate line continuation. It can be used both from the normal command prompt (which will actually prompt the user for more input if used) and within a batch file.