pyhton 类似这样的 ls /home/work |grep -v tgz 获得文件夹为一个数组
时间: 2023-12-14 15:36:22 浏览: 27
可以使用 Python 的 `os` 和 `glob` 模块来实现这个功能。具体操作如下:
```python
import os
import glob
# 获取指定目录下的所有文件和文件夹
files = os.listdir('/home/work')
# 使用 glob 模块来过滤掉后缀名为 tgz 的文件
filtered_files = glob.glob('/home/work/*[!tgz]')
# 打印过滤后的文件列表
print(filtered_files)
```
以上代码中,`os.listdir()` 方法可以获取指定目录下的所有文件和文件夹名字,返回一个列表。而 `glob.glob()` 方法则可以根据通配符匹配符合条件的文件名,返回一个列表。在本例中,我们使用了通配符 `*[!tgz]` 来匹配所有不以 `tgz` 结尾的文件。最终返回的就是一个过滤后的文件列表。
相关问题
pyhton 类似这样的 ls /home/work |grep -v tgz | grep traffic 获得文件夹为一个数组
可以使用Python的os模块和subprocess模块来实现这个功能。
下面是一个使用os模块的示例代码:
```python
import os
folder_list = []
for folder in os.listdir('/home/work'):
if os.path.isdir(os.path.join('/home/work', folder)):
if 'tgz' not in folder and 'traffic' in folder:
folder_list.append(folder)
print(folder_list)
```
这里首先使用`os.listdir`函数列出`/home/work`目录下的所有文件和文件夹,然后使用`os.path.isdir`函数判断是否为文件夹。接着使用`not in`操作符和`in`操作符进行过滤,最后将符合条件的文件夹名添加到`folder_list`数组中。
如果要使用subprocess模块,可以使用类似下面的代码:
```python
import subprocess
output = subprocess.check_output("ls /home/work | grep -v tgz | grep traffic", shell=True)
folder_list = output.decode().split()
print(folder_list)
```
这里使用`subprocess.check_output`函数调用`ls`命令,并通过管道符和`grep`命令过滤出符合条件的文件夹名。最后使用`decode`方法将二进制字符串解码为普通字符串,并使用`split`方法分割成数组。
使用pyhton将一个二维数组根据最后一个元素的大小进行从大到小排序
可以使用Python的内置函数`sorted()`来实现根据二维数组的最后一个元素进行排序。可以通过自定义的排序函数来指定按照最后一个元素进行排序的规则。
下面是一个示例代码:
```python
def sort_by_last_element(arr):
return sorted(arr, key=lambda x: x[-1], reverse=True)
# 测试代码
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 1]]
sorted_array = sort_by_last_element(array)
print(sorted_array)
```
运行结果:
```
[[7, 8, 9], [4, 5, 6], [1, 2, 3], [10, 11, 1]]
```
在上面的代码中,`sort_by_last_element()`函数接收一个二维数组作为参数,并使用`sorted()`函数对数组进行排序。关键字参数`key`指定了排序规则,使用`lambda`函数来获取每个子列表的最后一个元素作为排序依据。`reverse=True`参数用于指定降序排序。
这样就可以根据二维数组的最后一个元素进行从大到小的排序。