cuốn sách gpt4 ai đã làm

Shell Python bị kẹt khi đọc tệp (fasta)

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 19:21:30 26 4
mua khóa gpt4 Nike

Tôi sẽ bắt đầu bằng cách hiển thị mã tôi có cho đến nay:

chắc chắn có lỗi(em):
in(em)
ra

định nghĩa rF(f):
s = ""
thử:
fh = open(f, 'r')
ngoại trừIOError:
e = "Không thể mở tập tin:" + f
lỗi (e)

thử:
với fh là ff:
tiếp theo(ff)
cho l trong ff:
nếu ">" trong l:
tiếp theo(ff)
khác:
s += l.replace('\n','').replace('\t','').replace('\r','')
ngoại trừ:
e = "Ngoại lệ không xác định"
lỗi (e)
fh.close()
trả lại s

Vì lý do nào đó, shell python (tôi đang sử dụng 3.2.2) bị kẹt bất cứ khi nào tôi cố đọc tệp bằng cách gõ:

rF("mycobacteria_bovis.fasta")

Điều kiện trong hàm rF là ngăn việc đọc mọi dòng bắt đầu bằng dấu ">". Những dòng này không phải là mã DNA/RNA (đó là những gì tôi đang cố đọc từ những tệp này) và nênsao nhãng.

Tôi hy vọng mọi người có thể giúp tôi giải quyết vấn đề này, tôi không thấy lỗi của mình.

Như thường lệ, cảm ơn bạn rất nhiều!

biên tập:*Vấn đề vẫn tồn tại!*Đây là mã tôi đang sử dụng, tôi đã xóa phần xử lý lỗi, dù sao thì đây cũng là một bổ sung đặc biệt, shell vẫn bị kẹt mỗi khi cố đọc tệp. Đây là mã hiện tại của tôi:

định nghĩa rF(f):
s = ""
thử:
fh = open(f, 'r')
ngoại trừIOError:
in ("Lỗi")

thử:
với fh là ff:
tiếp theo(ff)
cho l trong ff:
nếu ">" trong l:
tiếp theo(ff)
khác:
s += l.replace('\n','').replace('\t','').replace('\r','')
ngoại trừ:
in ("Lỗi")

fh.close()
trả lại s

câu trả lời hay nhất

bạn chưa bao giờ xác địnhe.
Vì vậy, bạn sẽ có được một bức ảnh khoả thân ngoại trừ: Tên ẩnLỗi.

Đó là lý do tại sao việc chỉ định các trường hợp ngoại lệ là hữu ích và lành mạnh, như:

thử: 
in (e)
ngoại trừ NameError là e:
in (e)

Tuy nhiên, trong trường hợp như của bạn, khi bạn không nhất thiết phải biết ngoại lệ là gì, ít nhất bạn nên sử dụng phương pháp hiển thị thông tin về lỗi này :

import sys
thử:
in (e)
ngoại trừ: # bắt *tất cả* ngoại lệ
e = sys.exc_info()[1]
in (e)

Sử dụng mã gốc bạn đã đăng, phần sau sẽ được in:

tên 'e' không được xác định

Đã chỉnh sửa với thông tin cập nhật:
Nếu bạn có một tệp lớn, việc nối các chuỗi như thế này sẽ rất chậm.
Hãy cân nhắc việc ghi thông tin đã lọc vào một tệp khác, ví dụ:

định nghĩa rF(f):
với open(f,'r') là vây, open('outfile','w') là fou:
tiếp theo (vây)
cho l trong vây:
nếu ">" trong l:
tiếp theo (vây)
khác:
fou.write(l.replace('\n','').replace('\t','').replace('\r',''))

Tôi đã kiểm tra rằng đoạn mã trên hoạt động trên các tệp FASTA dựa trên các thông số định dạng được liệt kê ở đây:http://en.wikipedia.org/wiki/FASTA_formatSử dụng Python 3.2.2 [GCC 4.6.1] trên linux2.

Một số gợi ý:

  • Bắt đầu nhỏ. Làm một công việc đơn giản và sau đó thêm một bước.
  • Thêm vào điểm vấn đề in() tuyên bố.

Ngoài ra, hãy cân nhắc việc đưa thêm thông tin về nội dung của tệp mà bạn đang cố phân tích cú pháp. Điều này có thể giúp chúng tôi trợ giúp dễ dàng hơn.

Về việc shell Python bị kẹt khi đọc tệp (fasta), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/9574379/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress