Tập tin đầu vào python

Bạn mở tệp để viết theo cách bạn làm để đọc, ngoại trừ chế độ

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
1 thay vì chế độ
with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
2

Bạn ghi vào một tệp bằng cách gọi

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
3 trên tệp đó giống như cách bạn đọc bằng cách gọi
with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
4 hoặc
with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
5

Đây là tất cả được giải thích trong phần đọc và viết các tập tin của hướng dẫn

Vì vậy, nếu mã hiện tại của bạn trông giống như thế này

with open('input.txt', 'r') as f:
    while True:
        line = f.readline()
        if not line:
            break
        print(line)

Bạn chỉ cần làm điều này

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)

Nếu bạn đang tìm cách cho phép người dùng vượt qua tên tệp trên dòng lệnh, hãy sử dụng

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
6 để lấy tên tệp sử dụng hoặc sử dụng

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
0 để phân tích các đối số dòng lệnh phức tạp hơn

Ví dụ. you can change the first line to this control

import sys
with open(sys.argv[1], 'r') as fin, open(sys.argv[2], 'w') as fout:

Bây giờ, bạn có thể chạy chương trình như thế này

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
0

Cập nhật lần cuối vào ngày 21 tháng 6 năm 2022

Chạy tập lệnh Python của bạn là một bước quan trọng trong quá trình phát triển bởi vì theo cách này, bạn sẽ thấy mã của bạn có hoạt động như bạn dự kiến ​​không. Ngoài ra, đó thường là trường hợp chúng ta cần truyền thông tin cho lệnh Python để nó hoạt động

Trong hướng dẫn này, bạn sẽ khám phá nhiều cách chạy và truyền thông tin khác nhau đến kịch bản Python

Sau khi hoàn thành hướng dẫn này, bạn sẽ biết

  • Cách chạy tập lệnh Python bằng giao diện dòng lệnh, ghi chép sao chép Jupyter hoặc môi trường phát triển phân tích hợp nhất (IDE) & NBSP;  
  • Cách truyền thông tin đến tập lệnh Python bằng & NBSP; . argv & nbsp; . & nbsp; sys. argv   bằng cách mã hóa cứng các biến đầu vào trong Jupyter Notebook hoặc thông qua việc sử dụng tương tác đầu vào . . . . . . . . ()  function. 

Bắt đầu dự án của bạn với cuốn sách Python mới cho Machine Learning, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ. với cuốn sách mới của tôi Python for Machine Learning, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ

Started any

Tập tin đầu vào python

Chuyển và chuyển thông tin cho một bức ảnh kịch bản python của Andrea Leopardi, một số quyền đã được bảo lưu.
Ảnh của Andrea Leopardi, bảo lưu một số quyền.

Tổng hướng dẫn

Hướng dẫn này được chia thành hai phần;

  • Run script Python
    • Use the command line interface
    • Sử dụng ghi chép sao chép Jupyter
    • Sử dụng môi trường phát triển hợp nhất (IDE)
  • Đầu vào Python

Run the Python file

Use the command line interface

Sử dụng ghi chép sao chép Jupyter  

Sử dụng môi trường phát triển tích hợp (IDE)  

Đầu vào Python python trong giao diện dòng lệnh của bạn sẽ bắt đầu phiên tương tác Python. Bạn sẽ thấy một thông báo xuất hiện cho bạn biết phiên bản Python mà bạn đang sử dụng.  

Run the Python file

Giao diện dòng lệnh được sử dụng rộng rãi để chạy mã Python.  

Hãy thử nghiệm một vài lệnh bằng cách mở một dấu nhắc lệnh hoặc cửa sổ đầu cuối, tùy thuộc vào hệ điều hành mà bạn đang làm việc.  

Bất kỳ câu lệnh nào bạn viết trong giao diện dòng lệnh của bạn trong một phiên hợp tác sẽ được thực hiện ngay lập tức. Ví dụ. enter 2 + 3 return value 5

Sử dụng một phiên bản tương tác theo cách này có lợi thế của nó vì bạn có thể kiểm tra các dòng mã Python một cách dễ dàng và nhanh chóng. Tuy nhiên, đó không phải là lựa chọn lý tưởng nếu chúng ta quan tâm hơn đến việc viết các chương trình dài hơn, như trường hợp nếu chúng ta đang phát triển một thuật toán học máy. Biến mã cũng bị mất khi phiên tương tác bị chấm dứt. & NBSP;  

Một tùy chọn thay thế sẽ là kịch bản Python. Hãy bắt đầu với một ví dụ đơn giản trước. & NBSP;  

Trong một trình soạn thảo văn bản (không hạn chế như Notepad ++, Visual Studio Code hay văn bản siêu phàm), nhập câu lệnh   . ")   and save file to test_script. py & nbsp; . py.   in("Xin chào thế giới. ")   và lưu tệp vào test_script. py hoặc bất kỳ tên nào khác mà bạn chọn miễn là bạn bao gồm một. phần mở rộng py.  

Hiện tại, quay trở lại giao diện dòng lệnh của bạn và nhập lệnh Python, theo sau là tên của tệp lệnh của bạn. Trước khi bạn làm như vậy, bạn có thể cần thay đổi đường dẫn để con trỏ đến thư mục chứa tệp lệnh. Run file after that will create a after. Lệnh python , theo sau là tên tệp tập lệnh của bạn. Trước khi làm như vậy, bạn có thể cần thay đổi đường dẫn để trỏ đến thư mục chứa tệp script. Chạy tệp script sau đó sẽ tạo ra đầu ra sau.

Hiện tại, chúng ta hãy viết một tệp lệnh tải mô hình Keras được đào tạo trước đó và đưa ra dự đoán cho hình ảnh này của một con chó con. Đó thường là trường hợp chúng tôi cũng cần truyền thông tin cho lệnh Python dưới dạng các đối số dòng lệnh. Với mục đích này, chúng tôi sẽ sử dụng & nbsp; . argv & nbsp; . Chúng tôi có thể có nhiều đối số bắt đầu như mã yêu cầu, trong trường hợp đó chúng tôi sẽ tiếp tục đọc các đối số đầu vào từ danh sách đối số. & nbsp; sys. argv   lệnh để chuyển cho tập lệnh đường dẫn hình ảnh và số lượng dự đoán hàng đầu sẽ trả về. Chúng tôi có thể có nhiều đối số đầu vào như mã yêu cầu, trong trường hợp đó, chúng tôi sẽ tiếp tục đọc các đầu vào từ danh sách đối số.  

Tệp lệnh mà chúng tôi sẽ chạy hiện có chứa mã sau

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Nhập khẩusys

Nhập khẩu Asnpnumpy asnp

FromTensorFlow. máy ảnh. Phablations Nhập khẩuvgg16tensorflow. máy ảnh. ứng dụng nhậpvgg16

FromTensorFlow. máy ảnh. Các ứng dụng. VGG16 IMPINTPROCESS_INPUT, DECODE_PREDICTIONS tensorflow. máy ảnh. ứng dụng. vgg16 nhậppreprocess_input,decode_predictions

FromTensorFlow. máy ảnh. Tiền xử lý Nhập khẩutensorflow. máy ảnh. tiền xử lý nhậphình ảnh

# Tải mô hình VGG16 được đào tạo trước trên bộ dữ liệu ImageNet

vgg16_model=vgg16. VGG16(weights='imagenet')=vgg16. VGG16(trọng số=')

# Đọc đối số dòng lệnh được chuyển cho trình thông dịch khi gọi tập lệnh

image_path=sys. argv[1]=sys. argv[1]

top_guesses=sys. argv[2] =sys. argv[2]

# Tải ảnh, được thay đổi kích thước theo kích thước mục tiêu mô hình

img_resized=hình ảnh. load_img(image_path,target_size=(224,224))=hình ảnh. load_img(image_path,target_size=(224, 224))

# Chuyển đổi hình ảnh thành một mảng

img=hình ảnh. img_to_array(img_resized)=hình ảnh. img_to_array(img_resized)

# Thêm vào một chiều

img=np. expand_dims(img,axis=0)=np. expand_dims(img, axis=0)

# Tỷ lệ pixel cường độ giá trị

img=pre process_input(img)=pre process_input(img)

# Tạo dự đoán cho thử nghiệm hình ảnh

pred_vgg=vgg16_model. dự đoán(img)= vgg16_model. dự đoán(img)

# Giải mã và trong 3 dự đoán hàng đầu

print('Dự đoán. ',decode_predictions(pred_vgg,top=int(top_guesses)))('Dự đoán. ',decode_predictions(pred_vgg,top=int(top_guesses)))

Trong mã trên, chúng tôi đọc các đối số dòng lệnh bằng cách sử dụng

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
1 và
with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
2 cho hai đối số đầu tiên. Chúng ta có thể chạy tệp lệnh bằng cách sử dụng lệnh_______03 theo sau là tên của tệp lệnh và chuyển tiếp nó làm đối số cho đường dẫn ảnh (sau khi ảnh đã được lưu vào đĩa) và số lượng dự kiến ​​hàng đầu

Python Pretraining_Model. con chó py. jpg3pretraining_model. py chó. jpg3

Ở đây, presrained_model. py is name of file script and image dog. jpg đã được lưu vào cùng một thư mục chứa tập lệnh Python. & NBSP;  

Ba dự đoán hàng đầu được tạo ra như sau

Dự đoán. [[('N02088364', 'Beagle', 0. 6751468), ('N02089867', 'Walker_Hound', 0. 1394801), ('N02089973'

But could have more than in command line. Ví dụ. dòng lệnh sau đây sẽ chạy tập lệnh trong chế độ tối ưu hóa trên mạng, trong đó biến đổi lỗi

with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
4 was set to the command_______05 and
with open('input.txt', 'r') as fin, open('output.txt', 'w') as fout:
    while True:
        line = fin.readline()
        if not line:
            break
        fout.write(line)
6 isbỏ qua

Và sau đây là khởi động tập lệnh với mô-đun Python, chẳng hạn như trình giải quyết lỗi

python-mpdbtest_script. py-mpdbtest_script. py

Chúng tôi sẽ có một bài viết khác về việc sử dụng trình gỡ lỗi và trình biên dịch

Sử dụng máy tính xách tay Jupyter

Chạy tập lệnh Python từ giao diện dòng lệnh là một tùy chọn đơn giản nếu mã của bạn tạo ra chuỗi đầu ra và không có nhiều thứ khác. & NBSP;  

Tuy nhiên, khi chúng tôi đang làm việc với hình ảnh, thông thường tôi muốn tạo ra một cái đầu ra trực quan. Chúng tôi có thể kiểm tra tính xác thực của bất kỳ quá trình xử lý tiền xử lý nào được áp dụng cho hình ảnh từ đầu trước khi đưa nó vào mạng thần kinh hoặc trực tiếp hóa kết quả mà mạng thần kinh tạo ra. Notebook Jupyter cung cấp một môi trường điện tương tác có thể giúp chúng tôi làm toán đạt được điều này

Một cách để chạy tập lệnh Python thông qua giao diện Notebook Jupyter chỉ cần thêm mã vào một ô trên máy tính xách tay. Nhưng điều này có nghĩa là mã của bạn ở bên trong ghi chép Jupyter và không thể truy cập được ở nơi khác, giả sử hạn chế sử dụng dòng lệnh như trên. Một cách khác là sử dụng lệnh Run Magic, được tiền tố bởi   . Cố gắng nhập mã sau vào ô trong Notebook Jupyter. Lệnh ma thuật chạy , bắt đầu bằng ký tự  %  . Hãy thử nhập đoạn mã sau vào một ô trong Jupyter Notebook.

%Chạy Pretraining_model. con chó py. jpg3chạy pretraining_model. py chó. jpg3

Ở đây, chúng tôi một lần nữa chỉ định tên của tệp lệnh Python là presrained_model. py, & nbsp; . Bạn sẽ thấy rằng ba dự đoán hàng đầu được ở bên dưới ô tạo ra kết quả này. & NBSP;  

Bây giờ, hãy nói rằng chúng tôi muốn hiển thị hình ảnh đầu vào để kiểm tra xem nó đã được tải xuống theo kích thước mục tiêu mô hình. Với mục đích này, chúng tôi sẽ sửa đổi mã một chút như sau và lưu nó vào tệp lệnh Python mới, Pretraining_model_image. py

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

Nhập khẩusys

Nhập khẩu Asnpnumpy asnp

Nhập khẩuMatplotlib. Pyplot Aspltmatplotlib. pyplot asplt

FromTensorFlow. máy ảnh. Phablations Nhập khẩuvgg16tensorflow. máy ảnh. ứng dụng nhậpvgg16

FromTensorFlow. máy ảnh. Các ứng dụng. VGG16 IMPINTPROCESS_INPUT, DECODE_PREDICTIONS tensorflow. máy ảnh. ứng dụng. vgg16 nhậppreprocess_input,decode_predictions

FromTensorFlow. máy ảnh. Tiền xử lý Nhập khẩutensorflow. máy ảnh. tiền xử lý nhậphình ảnh

# Tải mô hình VGG16 được đào tạo trước trên bộ dữ liệu ImageNet

vgg16_model=vgg16. VGG16(weights='imagenet')=vgg16. VGG16(trọng số=')

# Đọc các tham số đã được chuyển cho trình thông dịch khi gọi lệnh tập tin

image_path=sys. argv[1]=sys. argv[1]

top_guesses=sys. argv[2] =sys. argv[2]

# Tải ảnh, được thay đổi kích thước theo kích thước mục tiêu mô hình

img_resized=hình ảnh. load_img(image_path,target_size=(224,224))=hình ảnh. load_img(image_path,target_size=(224, 224))

# Chuyển đổi hình ảnh thành một mảng

img=hình ảnh. img_to_array(img_resized)=hình ảnh. img_to_array(img_resized)

# Hiển thị hình ảnh để kiểm tra xem nó có bị thay đổi chính xác không

plt. imshow(img. astype(np. uint8)). imshow(img. astype(np. uint8))

# Thêm vào một chiều

img=np. expand_dims(img,axis=0)=np. expand_dims(img,axis=0)

# Tỷ lệ pixel cường độ giá trị

img=pre process_input(img)=pre process_input(img)

# Tạo dự đoán cho thử nghiệm hình ảnh

pred_vgg=vgg16_model. dự đoán(img)=vgg16_model. dự đoán(img)

# Giải mã và trong 3 dự đoán hàng đầu

print('Dự đoán. ',decode_predictions(pred_vgg,top=int(top_guesses)))('Dự đoán. ',decode_predictions(pred_vgg, top=int(top_guesses)))

Chạy tập lệnh Python mới được lưu thông qua giao diện Notebook Jupyter hiện hiển thị hình ảnh pixel $ 224 \ Times 224 $, ngoài ra còn có trong ba dự đoán hàng đầu

%Chạy Pretraining_model_image. con chó py. jpg3chạy pretraining_model_image. py chó. jpg3

Run script Python in write copy Jupyter

Ngoài ra, chúng ta có thể cắt giảm mã thành phần sau (và lưu nó vào một Python file khác, Pretraining_model_inputs. py)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# Tải mô hình VGG16 được đào tạo trước trên bộ dữ liệu ImageNet

vgg16_model=vgg16. VGG16(weights='imagenet')=vgg16. VGG16(trọng số=')

# Tải ảnh, được thay đổi kích thước theo kích thước mục tiêu mô hình

img_resized=hình ảnh. load_img(image_path,target_size=(224,224))= hình ảnh. load_img(image_path,target_size=(224,224))

# Chuyển đổi hình ảnh thành một mảng

img=hình ảnh. img_to_array(img_resized)=hình ảnh. img_to_array(img_resized)

# Hiển thị hình ảnh để kiểm tra xem nó có bị thay đổi chính xác không

plt. imshow(img. astype(np. uint8)). imshow(img. astype(np. uint8))

# Thêm vào một chiều

img=np. expand_dims(img,axis=0)= np. expand_dims(img,axis=0)

# Tỷ lệ pixel cường độ giá trị

img=pre process_input(img)=pre process_input(img)

# Tạo dự đoán cho thử nghiệm hình ảnh

pred_vgg=vgg16_model. dự đoán(img) =vgg16_model. dự đoán(img)

# Giải mã và trong 3 dự đoán hàng đầu

print('Dự đoán. ',decode_predictions(pred_vgg,top=top_guesses))('Dự đoán. ',decode_predictions(pred_vgg,top=top_guesses))

Chạy tập lệnh Python mới được lưu thông qua giao diện Notebook Jupyter hiện hiển thị hình ảnh pixel $ 224 \ Times 224 $, ngoài ra còn có trong ba dự đoán hàng đầu. -i   tùy chọn sau  %run  magic:

%run-ipretraining_model_inputs. pychạy-ipretraining_model_inputs. py

Run script Python in write copy Jupyter

Ngoài ra, chúng ta có thể cắt giảm mã thành phần sau (và lưu nó vào một lệnh Python khác, Pretraining_model_inputs. py).  

Và xác định các biến đầu vào trong một ô của máy tính xách tay chính Jupyter. Chạy tập lệnh Python theo cách này sẽ yêu cầu chúng tôi cũng sử dụng & nbsp; .  

Ưu điểm của công việc như vậy là có quyền truy cập dễ dàng hơn vào các biến bên trong tập lệnh Python có thể được xác định tương tác.  

Khi mã của bạn phát triển, việc kết hợp việc sử dụng Trình chỉnh sửa văn bản với Jupyter Notebook có thể cung cấp một cách thuận lợi về phía trước. Trình chỉnh sửa văn bản có thể được sử dụng để tạo tập lệnh Python, mà mã cửa hàng có thể được sử dụng lại, trong khi Jupyter Notebook cung cấp môi trường điện toán tương tác để khám phá dữ liệu dễ dàng hơn.  

Bạn muốn bắt đầu với Python để học máy?

Tham gia khóa học gặp sự cố email 7 ngày miễn phí của tôi ngay bây giờ (có mã mẫu)

Nhấp để đăng ký và cũng nhận được phiên bản Ebook PDF miễn phí của khóa học.  

Sử dụng môi trường phát triển hợp nhất (IDE)

Một tùy chọn khác là chạy tập lệnh Python từ IDE. Điều này yêu cầu dự án được tạo lần đầu tiên và tập lệnh Python có phần mở rộng. py được thêm vào nó.  

Nếu chúng tôi phải coi Pycharm hoặc Visual Studio Code là IDE của sự lựa chọn, điều này sẽ yêu cầu chúng tôi tạo một dự án mới và sau đó chọn phiên bản Python mà chúng tôi muốn làm việc. Sau khi thêm tập lệnh Python vào dự án mới được tạo, điều này có thể được chạy để tạo đầu ra. Sau đây là ảnh chụp màn hình của Run Visual Studio Code trên MacOS. Tùy thuộc vào IDE, cần có tùy chọn để chạy mã có hoặc không có trình gỡ lỗi. sys. argv   hoặc bằng cách mã hóa cứng các biến đầu vào trong Jupyter Notebook trước khi chạy tập lệnh.  

Một tùy chọn khác là lấy đầu vào từ người dùng thông qua đầu vào () & nbsp; . & nbsp; đầu vào()   chức năng.  

Xem xét mã sau

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Nhập khẩu Asnpnumpy asnp

Nhập khẩuMatplotlib. Pyplot Aspltmatplotlib. pyplot asplt

FromTensorFlow. máy ảnh. Phablations Nhập khẩuvgg16tensorflow. máy ảnh. ứng dụng nhậpvgg16

FromTensorFlow. máy ảnh. Các ứng dụng. VGG16 IMPINTPROCESS_INPUT, DECODE_PREDICTIONS tensorflow. máy ảnh. ứng dụng. vgg16 nhậppreprocess_input,decode_predictions

FromTensorFlow. máy ảnh. Tiền xử lý Nhập khẩutensorflow. máy ảnh. tiền xử lý nhậphình ảnh

# Tải mô hình VGG16 được đào tạo trước trên bộ dữ liệu ImageNet

vgg16_model=vgg16. VGG16(weights='imagenet')=vgg16. VGG16(trọng số=')

# Hỏi người dùng để bắt đầu vào thủ công

Image_path = input ("Nhập đường dẫn hình ảnh. ")=đầu vào("Nhập đường dẫn hình ảnh. ")

top_guesses = input("Nhập số lượng phỏng đoán hàng đầu. ")= đầu vào("Nhập số lần đoán nhiều nhất. ")

# Tải ảnh, được thay đổi kích thước theo kích thước mục tiêu mô hình

img_resized=hình ảnh. load_img(image_path,target_size=(224,224))=hình ảnh. load_img(image_path,target_size=(224, 224))

# Chuyển đổi hình ảnh thành một mảng

img=hình ảnh. img_to_array(img_resized)=hình ảnh. img_to_array(img_resized)

# Thêm vào một chiều

img=np. expand_dims(img,axis=0)=np. expand_dims(img, axis=0)

# Tỷ lệ pixel cường độ giá trị

img=pre process_input(img)=pre process_input(img)

# Tạo dự đoán cho thử nghiệm hình ảnh

pred_vgg=vgg16_model. dự đoán(img)= vgg16_model. dự đoán(img)

# Giải mã và trong 3 dự đoán hàng đầu

print('Dự đoán. ',decode_predictions(pred_vgg,top=int(top_guesses)))('Dự đoán. ',decode_predictions(pred_vgg,top=int(top_guesses)))

Ở đây, người dùng được nhắc nhập thủ thuật đường dẫn hình ảnh (hình ảnh đã được lưu vào cùng một thư mục chứa tệp lệnh Python và thực hiện điều đó, chỉ định tên hình ảnh là đủ) và số lượng dự kiến . Cả hai giá trị đầu vào đều thuộc chuỗi; . & NBSP;  

Không có vấn đề gì nếu mã này được chạy trong giao diện dòng lệnh, trong Notebook Jupyter hoặc trong IDE Python, nó sẽ nhắc người dùng về các đầu vào cần thiết và sau đó tạo ra số lượng dự đoán mà . & NBSP;  

Đọc thêm

Phần này cung cấp nhiều tài nguyên hơn về chủ đề nếu bạn muốn đi sâu hơn

sách

  • Nguyên tắc cơ bản của Python, 2018
  • Bản thiết kế máy Python, 2019

BẢNG XÁC SUẤT

Trong hướng dẫn này, bạn đã phát hiện ra nhiều cách chạy và truyền thông tin khác nhau đến một kịch bản Python