Hướng dẫn python to ruby converter - trình chuyển đổi python sang ruby

Tôi có một tập lệnh Ruby mà tôi đã làm việc trên việc loại bỏ nguồn của một trang web và ghi vào tệp. Sau đó, tôi phải đọc tệp này và lấy dữ liệu cụ thể từ tệp dữ liệu rác này. Tôi có thể làm điều đó trong Python và nhận được mảng tôi cần. Tôi muốn có thể chỉ làm cho Ruby Code của mình ngủ trong một phút và làm điều tương tự để tôi không phải gọi kịch bản Python và sau đó đọc kết quả trở lại vào Ruby Script để tiếp tục. Tôi chắc chắn có một cách để làm điều này trong Ruby Tôi mới bắt đầu với Ruby và chưa hiểu biết lắm.

#!/usr/bin/env python

import re

f = open("C:/Users/Steve/Desktop/scripts/testout.txt", encoding="utf8") 
da = f.read()
f.close()
matches = re.findall('href="/normal/PropertyDetails.rb.PID=(\d+)', str(da))
res = []
for i in matches:
    if i not in res:
        res.append(i)
print(str(res))

Nếu tôi phải đi theo tuyến đường với Python, tôi sẽ phải ngủ và gọi tập lệnh Python ghi vào một tệp văn bản khác và sau đó Ruby mở tệp đọc và tiếp tục. Chỉ cố gắng làm cho nó hiệu quả nhất có thể.

Sau khi làm việc với đề xuất dưới đây, tôi đã có thể xác định vị trí các tài nguyên chính xác để hướng dẫn tôi thêm. Đây là mã đơn giản hóa Ruby

data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)

Bây giờ tôi có thể tiếp tục với mã Ruby mà tôi đang học trên đường đi. Tôi nghĩ rằng tôi có các lĩnh vực khác được bảo hiểm cảm ơn vì sự hỗ trợ.

Giới thiệu

Đây là một hướng dẫn Ruby nhỏ nên mất không quá 20 phút để hoàn thành. Nó làm cho giả định rằng bạn đã cài đặt Ruby. (Nếu bạn không có Ruby trên máy tính của bạn, hãy cài đặt nó trước khi bạn bắt đầu.)

Ruby tương tác

Ruby đi kèm với một chương trình sẽ hiển thị kết quả của bất kỳ câu lệnh Ruby nào bạn cho ăn. Chơi với Ruby Code trong các phiên tương tác như thế này là một cách tuyệt vời để học ngôn ngữ.

Mở IRB (là viết tắt của Ruby tương tác).

  • Nếu bạn sử dụng macOS, hãy mở
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    0 và nhập
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    1, thì hãy nhấn Enter.macOS open up
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    0 and type
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    1, then hit enter.
  • Nếu bạn sử dụng Linux, hãy mở Shell và gõ
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    1 và nhấn Enter.Linux, open up a shell and type
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    1 and hit enter.
  • Nếu bạn sử dụng Windows, hãy mở
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    3 từ phần Ruby trong menu Bắt đầu của bạn.Windows, open
    data = driver.page_source
    res = data.scan(/.PID=(\d+)/) 
    print(res.uniq)
    
    3 from the Ruby section of your Start Menu.
irb(main):001:0>

OK, vì vậy nó mở. Giờ thì sao?

Nhập cái này:

data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
4

irb(main):001:0> "Hello World"
=> "Hello World"

Ruby vâng lời bạn!

Điều gì vừa xảy ra? Có phải chúng ta vừa viết chương trình Hello World World World World của thế giới? Không chính xác. Dòng thứ hai chỉ là cách IRB, cho chúng ta biết kết quả của biểu thức cuối cùng mà nó đánh giá. Nếu chúng ta muốn in ra thế giới Hello Hello, chúng ta cần thêm một chút:

irb(main):002:0> puts "Hello World"
Hello World
=> nil

data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
5 là lệnh cơ bản để in một cái gì đó bằng Ruby. Nhưng sau đó, những gì
data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
6 bit? Đó là kết quả của biểu thức.
data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
5 luôn trả lại NIL, đó là giá trị không có gì không chính xác của Ruby.

Máy tính miễn phí của bạn ở đây

Đã, chúng tôi có đủ để sử dụng IRB làm máy tính cơ bản:

irb(main):003:0> 3+2
=> 5

Ba cộng hai. Vừa đủ dễ. Thế còn ba lần hai? Bạn có thể gõ nó vào, nó đủ ngắn, nhưng bạn cũng có thể đi lên và thay đổi những gì bạn vừa nhập. Hãy thử nhấn UP-Arrow trên bàn phím của bạn và xem liệu nó có mang lại dòng với

data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
8 trên đó không. Nếu có, bạn có thể sử dụng khóa mũi tên trái để di chuyển ngay sau dấu hiệu
data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
9 và sau đó sử dụng Backspace để thay đổi nó thành dấu
irb(main):001:0>
0.up-arrow on your keyboard and see if it brings up the line with
data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
8 on it. If it does, you can use the left arrow key to move just after the
data = driver.page_source
res = data.scan(/.PID=(\d+)/) 
print(res.uniq)
9 sign and then use backspace to change it to a
irb(main):001:0>
0 sign.

irb(main):004:0> 3*2
=> 6

Tiếp theo, hãy để thử ba bình phương:

irb(main):005:0> 3**2
=> 9

Trong Ruby

irb(main):001:0>
1 là cách bạn nói về sức mạnh của người Hồi giáo. Nhưng điều gì sẽ xảy ra nếu bạn muốn đi theo cách khác và tìm căn bậc hai của một cái gì đó?

irb(main):006:0> Math.sqrt(9)
=> 3.0

Ok, chờ đã, cái gì cuối cùng là gì? Nếu bạn đoán, thì nó đã tìm ra căn bậc hai của chín, bạn có thể đúng. Nhưng hãy để một cái nhìn kỹ hơn về mọi thứ. Trước hết, những gì mà

irb(main):001:0>
2?

Mã nhóm mô -đun theo chủ đề

irb(main):001:0>
2 là một mô-đun tích hợp cho toán học. Các mô -đun phục vụ hai vai trò trong Ruby. Điều này cho thấy một vai trò: nhóm các phương pháp tương tự với nhau dưới một tên quen thuộc.
irb(main):001:0>
2 cũng chứa các phương pháp như
irb(main):001:0>
5 và
irb(main):001:0>
6.

Tiếp theo là một dấu chấm. Dot làm gì? Dấu chấm là cách bạn xác định người nhận tin nhắn. Những gì thông điệp? Trong trường hợp này, nó ____ ____27, có nghĩa là gọi phương thức

irb(main):001:0>
8, tốc ký cho bộ phận căn bậc hai với tham số của
irb(main):001:0>
9.

Kết quả của cuộc gọi phương thức này là giá trị

irb(main):001:0> "Hello World"
=> "Hello World"
0. Bạn có thể nhận thấy nó không chỉ
irb(main):001:0> "Hello World"
=> "Hello World"
1. Điều đó bởi vì hầu hết thời gian căn bậc hai của một số won là một số nguyên, vì vậy phương thức luôn trả về một số điểm nổi.

Điều gì sẽ xảy ra nếu chúng ta muốn nhớ kết quả của một số toán học này? Gán kết quả cho một biến.

irb(main):007:0> a = 3 ** 2
=> 9
irb(main):008:0> b = 4 ** 2
=> 16
irb(main):009:0> Math.sqrt(a+b)
=> 5.0

Tuyệt vời như điều này là đối với một máy tính, chúng tôi đã tránh xa thông điệp

irb(main):001:0> "Hello World"
=> "Hello World"
2 truyền thống mà các hướng dẫn bắt đầu được cho là tập trung vào các trò chơi, vì vậy hãy để lại quay lại điều đó.