Tôi mới dùng python và đang cố đọc "khối" dữ liệu từ một tệp. Tệp được viết như sau:Đọc các khối dữ liệu từ một tệp trong Python
# Some comment
# 4 cols of data --x,vx,vy,vz
# nsp, nskip = 2 10
# 0 0.0000000
# 1 4
0.5056E+03 0.8687E-03 -0.1202E-02 0.4652E-02
0.3776E+03 0.8687E-03 0.1975E-04 0.9741E-03
0.2496E+03 0.8687E-03 0.7894E-04 0.8334E-03
0.1216E+03 0.8687E-03 0.1439E-03 0.6816E-03
# 2 4
0.5056E+03 0.8687E-03 -0.1202E-02 0.4652E-02
0.3776E+03 0.8687E-03 0.1975E-04 0.9741E-03
0.2496E+03 0.8687E-03 0.7894E-04 0.8334E-03
0.1216E+03 0.8687E-03 0.1439E-03 0.6816E-03
# 500 0.99999422
# 1 4
0.5057E+03 0.7392E-03 -0.6891E-03 0.4700E-02
0.3777E+03 0.9129E-03 0.2653E-04 0.9641E-03
0.2497E+03 0.9131E-03 0.7970E-04 0.8173E-03
0.1217E+03 0.9131E-03 0.1378E-03 0.6586E-03
and so on
Bây giờ tôi muốn có thể chỉ định và đọc chỉ một khối dữ liệu trong số nhiều khối này. Tôi đang sử dụng numpy.loadtxt('filename',comments='#')
để đọc dữ liệu nhưng nó tải toàn bộ tệp trong một lần. Tôi đã tìm kiếm trực tuyến và một người nào đó đã tạo ra một bản vá cho thói quen io numpy để xác định các khối đọc nhưng nó không phải là chủ yếu.
Việc chọn khối dữ liệu trong gnuplot dễ dàng hơn nhiều nhưng tôi phải viết thường trình để vẽ các hàm phân phối. Nếu tôi có thể tìm ra các khối đọc cụ thể, nó sẽ dễ dàng hơn trong python. Ngoài ra, tôi đang di chuyển tất cả các mã trực quan hóa của tôi sang python từ IDL và gnuplot, vì vậy sẽ rất tuyệt khi có mọi thứ trong python thay vì có những thứ nằm rải rác xung quanh trong nhiều gói.
Tôi đã nghĩ đến việc gọi gnuplot từ trong python, vẽ một khối tới một bảng và gán đầu ra cho một số mảng trong python. Nhưng tôi vẫn bắt đầu và tôi không thể tìm ra cú pháp để làm điều đó.
Bất kỳ ý tưởng, con trỏ nào để giải quyết vấn đề này sẽ giúp ích rất nhiều.
Vì vậy, bạn muốn người dùng chỉ định, nói một cặp giá trị (i, j) và đọc tất cả các dòng giữa dòng "# ij" và dòng trống tiếp theo? –
Alsmot!Điều chính xác tôi muốn có thể làm là có thể chỉ định i, j trong đó i là khối khởi đầu và j là khối cuối cùng và một khối được xác định bởi các hàng được phân cách bởi hai hoặc nhiều hàng trống. – toylas