请帮我写一个 os.path.getsize 得到文件大小后,如果小于m的显示为k 如果大于k小于kb的话显示为kb,如果大于kb小于m的显示为m 如果大于m小于g的话显示为 g的代码
时间: 2024-02-26 17:57:23 浏览: 170
好的,以下是符合您要求的代码示例:
```python
import os
def get_file_size(file_path):
"""
获取文件大小并转换为合适的单位
:param file_path: 文件路径
:return: 文件大小,带单位的字符串
"""
size = os.path.getsize(file_path)
if size < 1024:
return "{:.2f} k".format(size / 1024)
elif 1024 <= size < 1024 * 1024:
return "{:.2f} kb".format(size / 1024)
elif 1024 * 1024 <= size < 1024 * 1024 * 1024:
return "{:.2f} m".format(size / 1024 / 1024)
else:
return "{:.2f} g".format(size / 1024 / 1024 / 1024)
```
其中,`os.path.getsize(file_path)` 用于获取文件大小,单位为字节,根据大小判断后将其转换为适当的单位字符串并返回。注意保留小数点后两位。
相关问题
请帮我写一个 os.path.getsize 得到文件大小后,如果大于kb小于m的显示为m 如果大于m小于g的话显示为 g的代码
好的,以下是符合您要求的代码示例:
```python
import os
def get_file_size(file_path):
"""
获取文件大小并转换为合适的单位
:param file_path: 文件路径
:return: 文件大小,带单位的字符串
"""
size = os.path.getsize(file_path)
if size < 1024 * 1024:
return "{:.2f} kb".format(size / 1024)
elif 1024 * 1024 <= size < 1024 * 1024 * 1024:
return "{:.2f} m".format(size / 1024 / 1024)
else:
return "{:.2f} g".format(size / 1024 / 1024 / 1024)
```
其中,`os.path.getsize(file_path)` 用于获取文件大小,单位为字节,根据大小判断后将其转换为适当的单位字符串并返回。注意保留小数点后两位。如果文件大小大于等于1MB,则返回以MB为单位的文件大小,否则返回以KB为单位的文件大小。
使用Python写一个程序,使用PIL库对图片进行等比例压缩,无论压缩前文件大小如何,压缩后文件小于10KB
好的,我理解了你的问题。下面是使用PIL库对图片进行等比例压缩并确保压缩后文件小于10KB的Python程序:
```python
from PIL import Image
import os
def compress_image(file_path):
img = Image.open(file_path)
w, h = img.size
if w <= 400 and h <= 400:
return # 不需要压缩
if w > h:
new_w = 400
new_h = int(h * new_w / w)
else:
new_h = 400
new_w = int(w * new_h / h)
img = img.resize((new_w, new_h), Image.ANTIALIAS)
new_file_path = os.path.splitext(file_path)[0] + '_compressed.jpg'
img.save(new_file_path, optimize=True, quality=85)
while os.path.getsize(new_file_path) > 10240: # 压缩后文件大小大于10KB
img = img.resize((new_w - 10, new_h - 10), Image.ANTIALIAS)
img.save(new_file_path, optimize=True, quality=85)
return new_file_path
if __name__ == '__main__':
file_path = 'test.jpg'
new_file_path = compress_image(file_path)
print(new_file_path)
```
这个程序会读取指定路径下的图片文件,使用PIL库对其进行等比例压缩。如果图片宽高均小于等于400像素,则不进行压缩。如果图片宽高比例不同,则会按比例缩放到宽度为400或高度为400,然后保存为JPEG格式,并使图片文件大小尽量小于10KB。如果压缩后文件大小仍然大于10KB,则会继续缩小图片尺寸,直到文件大小小于10KB。
你可以将`file_path`变量替换为你想要压缩的图片路径。程序会返回压缩后的图片路径,如果不需要压缩则返回None。
阅读全文