2010-09-07 28 views
13

FolksLàm cách nào để truy cập các tệp bên trong tệp trứng trăn?

Đây có thể là một yêu cầu kỳ lạ nhưng đó là điều tôi đã gặp phải. Tôi googled nhưng không có gì.

Tôi đang mã hóa ứng dụng đang sử dụng nhiều thuộc tính/giá trị không đổi được ghi trong tệp XML (chúng sẽ không thay đổi thành tệp tĩnh), mọi thứ hoạt động tốt cho đến khi tôi tạo tệp trứng cho nó.

Khi logic đạt đến phần truy cập xml, tôi nhận được một đơn khiếu nại như sau: /home/Workspace/my_proj/dist/mps-1.2.0_M2-py2.6.egg/mps/par/client/syntax/ syntax.xml

Thực ra tôi đã gộp tệp xml vào đường dẫn ở trên nhưng dường như python không biết cách truy cập nó.

Mã để truy cập xml là như ...

file_handler = open(path_to_the_file) 
    lines = file_handler.read().splitlines() 

Bất kỳ ý tưởng?

Xin cảm ơn các bạn trước.

Trả lời

9

egg file là zipfiles, vì vậy bạn phải truy cập vào "công cụ" bên trong chúng với các module zipfile của các thư viện chuẩn của Python, không với built-in open chức năng!

+0

Tôi đọc tài liệu cho mô-đun zipfile và chắc chắn nó có thể thực hiện công việc. Cảm ơn bạn ~ – Ripley

+0

bạn thậm chí có thể cài đặt chúng bằng cách sử dụng, sudo easy_install your_eggfile – shahjapan

0

Nếu bạn muốn truy cập nội dung bên trong tệp .egg, bạn có thể chỉ cần đổi tên nó và thay đổi đuôi từ .egg thành .zip và giải nén nó. Mà sẽ tạo một thư mục và nội dung sẽ được giống như họ khi đó là một tập tin .egg

ví dụ brewer2mpl-1.4.1-py3.6.egg
Sau Đổi tên brewer2mpl-1.4. 1-py3.6.zip

Bây giờ nếu chúng ta mở nó, nó sẽ dễ dàng giải nén và nội dung sẽ được đặt trong một thư mục có cùng tên trong cùng một thư mục. (được thử nghiệm trên macOS Sierra)

0

chỉ cần sử dụng giải nén tệp.egg điều này là đủ.

Các vấn đề liên quan