Làm cách nào để lấy lại nhiệt độ CPU của tôi bằng Python? (Giả sử tôi đang sử dụng Linux)Lấy nhiệt độ CPU bằng Python?
Trả lời
Py-cputemp dường như thực hiện công việc.
Tùy thuộc vào bản phân phối Linux của bạn, bạn có thể tìm thấy tệp dưới /proc
chứa thông tin này. Ví dụ: this page đề xuất /proc/acpi/thermal_zone/THM/temperature
.
Bạn có thể thử mô-đun PyI2C, nó có thể đọc trực tiếp từ hạt nhân.
Nếu Linux của bạn hỗ trợ ACPI, hãy đọc pseudo-file /proc/acpi/thermal_zone/THM0/temperature
(đường dẫn có thể khác nhau, tôi biết nó là /proc/acpi/thermal_zone/THRM/temperature
trong một số hệ thống) nên làm điều đó. Nhưng tôi không nghĩ rằng có một cách hoạt động trong mỗi hệ thống Linux trên thế giới, vì vậy bạn sẽ phải cụ thể hơn về chính xác những gì Linux bạn có! -)
Thay vào đó bạn có thể cài đặt lm-cảm biến gói, sau đó cài đặt PySensors (một python ràng buộc cho libsensors).
Thật không may PySensors chỉ chạy theo phiên bản Python 2.x –
Có một số newer API (xem thêm LWN article và Linux kernel doc) hiển thị nhiệt độ dưới ví dụ:
/sys/class/thermal/thermal_zone0/temp
Bài đọc bằng nghìn phần trăm độ Celcius (mặc dù ở các hạt cũ hơn, nó có thể chỉ là độ C).
Đọc các tệp trong /sys/class/hwmon/hwmon */temp1_ * có tác dụng đối với tôi nhưng AFAIK không có tiêu chuẩn để thực hiện việc này một cách rõ ràng. Dù sao, bạn có thể thử điều này và đảm bảo nó cung cấp cùng một số CPU được hiển thị bằng "cảm biến" tiện ích cmdline, trong trường hợp này bạn có thể giả sử nó đáng tin cậy.
from __future__ import division
import os
from collections import namedtuple
_nt_cpu_temp = namedtuple('cputemp', 'name temp max critical')
def get_cpu_temp(fahrenheit=False):
"""Return temperatures expressed in Celsius for each physical CPU
installed on the system as a list of namedtuples as in:
>>> get_cpu_temp()
[cputemp(name='atk0110', temp=32.0, max=60.0, critical=95.0)]
"""
# http://www.mjmwired.net/kernel/Documentation/hwmon/sysfs-interface
cat = lambda file: open(file, 'r').read().strip()
base = '/sys/class/hwmon/'
ls = sorted(os.listdir(base))
assert ls, "%r is empty" % base
ret = []
for hwmon in ls:
hwmon = os.path.join(base, hwmon)
label = cat(os.path.join(hwmon, 'temp1_label'))
assert 'cpu temp' in label.lower(), label
name = cat(os.path.join(hwmon, 'name'))
temp = int(cat(os.path.join(hwmon, 'temp1_input')))/1000
max_ = int(cat(os.path.join(hwmon, 'temp1_max')))/1000
crit = int(cat(os.path.join(hwmon, 'temp1_crit')))/1000
digits = (temp, max_, crit)
if fahrenheit:
digits = [(x * 1.8) + 32 for x in digits]
ret.append(_nt_cpu_temp(name, *digits))
return ret
Sysmon hoạt động tốt. Được chế tạo độc đáo, nó hoạt động nhiều hơn đo nhiệt độ CPU. Nó là một chương trình dòng lệnh và ghi lại tất cả dữ liệu mà nó đo được vào một tệp. Ngoài ra, nó là mã nguồn mở và được viết bằng python 2.7.
Gần đây tôi đã thực hiện điều này trong psutil cho Linux mà thôi.
>>> import psutil
>>> psutil.sensors_temperatures()
{'acpitz': [shwtemp(label='', current=47.0, high=103.0, critical=103.0)],
'asus': [shwtemp(label='', current=47.0, high=None, critical=None)],
'coretemp': [shwtemp(label='Physical id 0', current=52.0, high=100.0, critical=100.0),
shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),
shwtemp(label='Core 1', current=52.0, high=100.0, critical=100.0),
shwtemp(label='Core 2', current=45.0, high=100.0, critical=100.0),
shwtemp(label='Core 3', current=47.0, high=100.0, critical=100.0)]}
Look sau pyspectator
trong pip
Chú ý: Yêu cầu python> = 3,0
from pyspectator import Cpu
from time import sleep
cpu = Cpu(monitoring_latency=1)
while True:
print cpu.temperature
sleep(1)
- 1. Giám sát nhiệt độ CPU
- 2. Lấy nhiệt độ ổ cứng bằng cách sử dụng Python
- 3. Làm thế nào để có được nhiệt độ CPU?
- 4. Làm thế nào để có được nhiệt độ CPU và tốc độ quạt trên OS X?
- 5. Làm thế nào để nhận được thông tin Nhiệt độ CPU từ Bios bằng cách sử dụng C#?
- 6. Lập trình đọc nhiệt độ CPU (+ dữ liệu cảm biến khác) trên MacOSX (Macbook Pros)
- 7. Cách đọc Nhiệt độ HardDisk?
- 8. in iOS hoà nhiệt độ gắn UIWebView
- 9. Cách nhận Nhiệt độ môi trường từ Cảm biến nhiệt độ Arduino Lilypad
- 10. Sử dụng bộ cảm biến lm để nhận nhiệt độ
- 11. Python - là cpu time.sleep (n) cpu?
- 12. Làm cách nào để truy cập bộ cảm biến nhiệt của CPU?
- 13. Bản đồ nhiệt từ vĩ độ & kinh độ
- 14. TSQL chọn bảng Nhiệt độ từ sql động
- 15. Tạo bản đồ nhiệt bằng pylab
- 16. Bản đồ nhiệt độ dòng thời gian D3
- 17. java bằng 100% cpu
- 18. hoặc thay đổi chế độ xử lý, trạng thái CPU, mức độ đặc quyền của CPU?
- 19. Phát hiện tốc độ CPU/Bộ nhớ/Tốc độ Internet bằng Java?
- 20. Lấy số lõi CPU trong JavaScript?
- 21. iOS - Thay đổi nhiệt độ màu của màn hình
- 22. Làm cách nào để lấy thông tin hệ thống bằng Python?
- 23. Lấy tiêu đề trình duyệt bằng Python
- 24. Lấy dữ liệu từ PubMed bằng python
- 25. Lấy mimetype của một tệp bằng Python
- 26. Cách lấy thư mục chính bằng Python?
- 27. Nhận số CPU trong Linux bằng C
- 28. Nhận dạng in với máy in nhiệt bằng java
- 29. Tốc độ tính toán (bằng python)
- 30. Python, Tkinter: Cách lấy tọa độ trên canvas cuộn
py-cputemp cơ bản là một veneer mỏng trên/proc/acpi/thermal_zone. Điều này ban đầu đã không làm việc cho tôi cho đến khi tôi nhận ra rằng tôi cần phải kích hoạt ACPI trong BIOS của tôi. Tôi đã vô hiệu hóa nó bởi vì tôi figured tôi không muốn quản lý năng lượng trên một máy chủ. Cảm ơn câu trả lời; Tôi chấp nhận điều này bởi vì nó đã được đăng đầu tiên và dẫn tôi đến suy nghĩ về nguồn gốc của vấn đề của tôi. – jamieb
Đây không phải là câu trả lời. – GLHF
Thư viện này không được duy trì và thậm chí không được đăng ký trong PyPI ... – Cerin