相关疑难解决方法(0)

如何获取超过一定大小的所有文件并删除它们

  1. 我正在寻找一个linux命令来从当前目录及其子目录中获取超过一定大小的所有文件.

  2. 什么是删除所有这些文件的最简单方法?

linux delete-file

23
推荐指数
2
解决办法
2万
查看次数

Python迭代器:iglob()的迭代器在glob()的列表中提供了什么?

鉴于这段代码:

from glob import glob, iglob

for fn in glob('/*'):
    print fn

print ''

for fn in iglob('/*'):
    print fn
Run Code Online (Sandbox Code Playgroud)

阅读glob 的文档我看到glob()返回一个基本的文件列表,iglob是一个Iterator.但是,我能够迭代两者,并且每个文件返回相同的文件列表.

我已经阅读了有关Iterator的文档,但它还没有真正了解这个主题!

那么iglob()返回一个Iterator会给我带来glob()的列表有什么好处呢?我是否能从我的老朋友那里获得额外的功能?

python iterator

22
推荐指数
2
解决办法
2万
查看次数

如何使用os.scandir()以递归方式在目录树上返回DirEntry对象?

Python 3.5的os.scandir(path)函数返回轻量级DirEntry对象,这些对象对文件信息非常有帮助.但是,它只适用于传递给它的直接路径.有没有办法将它包装在递归函数中,以便它访问给定路径下的所有子目录?

python python-3.x

16
推荐指数
1
解决办法
2万
查看次数

Python:当文件名(不是路径)可用时,如何在系统范围内搜索文件

我还是Python的新手(使用2.6),我只是在文件名可用时尝试对系统进行全系统搜索,并在Windows上返回绝对路径.我搜索并发现了一些像scriptutil.py这样的模块,并查看了os模块,但没有找到任何适合我需要的东西(或者我可能没有正确理解所有内容以将它应用到我需要的东西,因此没有包括任何码).我将不胜感激任何帮助.

谢谢.

python search

10
推荐指数
1
解决办法
1万
查看次数

在 Python 中展平复杂的目录结构

我想将文件从复杂的目录结构移动到一个地方。例如,我有这个深层次的层次结构:

foo/
    foo2/
        1.jpg
    2.jpg
    ...
Run Code Online (Sandbox Code Playgroud)

我希望它是:

1.jpg
2.jpg
...
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案:

def move(destination):
    for_removal = os.path.join(destination, '\\')
    is_in_parent = lambda x: x.find(for_removal) > -1
    with directory(destination):
        files_to_move = filter(is_in_parent,
                               glob_recursive(path='.'))
    for file in files_to_move:
        shutil.move(file, destination)
Run Code Online (Sandbox Code Playgroud)

定义:directoryglob_recursive。请注意,我的代码仅将文件移动到它们的公共父目录,而不是任意目标。

如何简洁优雅地将所有文件从复杂的层次结构移动到一个地方?

python directory-structure flatten file-move

7
推荐指数
3
解决办法
8443
查看次数

在整个应用程序中设置 on_delete 的简单方法

我一直在使用-WdPython的说法,发现的变化我需要为了准备我升级到2.0的Django

python -Wd manage.py runserver
Run Code Online (Sandbox Code Playgroud)

主要on_delete是由于成为必需的参数。

RemovedInDjango20Warning: on_delete 将是 Django 2.0 中 ForeignKey 的必需参数。models.CASCADE如果您想保持当前的默认行为,请将其设置为on models 和 in existing migrations。

请参阅https://docs.djangoproject.com/en/1.9/ref/models/fields/#django.db.models.ForeignKey.on_delete

是否有一个简单的正则表达式(或方法)可以用来放入on_delete我的所有外键?

regex django

6
推荐指数
1
解决办法
872
查看次数

在python中以递归方式搜索通配符文件夹

你好我试着做点什么

// 1. for x in glob.glob('/../../nodes/*/views/assets/js/*.js'):
// 2 .for x in glob.glob('/../../nodes/*/views/assets/js/*/*.js'):
    print x
Run Code Online (Sandbox Code Playgroud)

有什么办法可以回忆搜索吗?

我已经研究过使用Glob()在Python中递归查找文件?但是os.walk不接受节点和视图之间的上面的通配符文件夹,以及http://docs.python.org/library/glob.html那些非常有用的文档.

谢谢

python

5
推荐指数
1
解决办法
6010
查看次数

在Python中,在具有特定扩展名的目录中构建文件列表的最快方法

在GNU/Linux系统上的Python中,以递归方式扫描所有.MOV.AVI文件的目录并将它们存储在列表中的最快方法是什么?

python linux filesystems optimization recursion

5
推荐指数
3
解决办法
6794
查看次数

避免递归树中的基本路径

我知道如何d:\temp使用各种方法递归列出所有文件/文件夹,请参阅如何使用 glob() 递归查找文件?.
但通常我想避免d:\temp\在结果中使用前缀,而是使用到此基的相对路径。

这可以通过以下方式完成:

这3个解决方案有效。但实际上,如果您阅读 的来源glob.py,它确实会累积/加入路径的所有部分。所以上面的解决方案是......“删除之前刚刚添加的内容”!它有效,但不是很优雅。同上用于pathlibrelative_to该删除的前缀。

问题:如何修改接下来的几行以使其不在d:\temp输出中(不删除之前连接的内容!)?

import os

def listpath(path):
    for f in os.scandir(path):
        f2 = os.path.join(path, f)
        if os.path.isdir(f):
            yield f2
            yield from listpath(f2)
        else:
            yield f2

for f in listpath('d:\\temp'):
    print(f)

#d:\temp\New folder
#d:\temp\New folder\New Text Document - …
Run Code Online (Sandbox Code Playgroud)

python glob os.path pathlib

5
推荐指数
1
解决办法
52
查看次数

使用glob参数递归匹配文件名

我一直在尝试sys.argv[1]使用glob.glob和递归地获取命令行参数()中与glob模式匹配的文件列表os.walk.问题是,bash(以及它看起来很多其他shell)会自动将glob模式扩展为文件名.

标准的unix程序(例如grep -R)如何执行此操作?我意识到他们不是在python中,但如果这种情况发生在shell级别,那应该不重要,对吧?有没有办法让脚本告诉shell不自动扩展glob模式?它似乎set -f会禁用通配,但我不知道如何尽早运行,可以这么说.

我见过使用Glob()在Python中递归查找文件?,但这并不包括实际从命令行参数获取glob模式.

谢谢!

编辑:

grep-like perl脚本ack接受perl正则表达式作为其参数之一.因此,ack .*打印出每个文件的每一行.但是.*应该扩展到目录中的所有隐藏文件.我试过阅读剧本,但我不知道perl; 它怎么能这样做?

python bash glob argv

4
推荐指数
1
解决办法
1883
查看次数

使用 Python 递归获取所有文件(带有绝对路径)的列表及其 uid

我正在尝试编写一个 python 脚本,以递归方式列出给定目录中具有绝对路径的所有文件,并在它们前面列出它们的 UID 和文件所有者。(类似于: ls -lR )我写了这个,但它在执行结束时给了我一个错误:

import os
for folder, subfolders, files in os.walk(os.getcwd()):
    for file in files:
        filePath = os.path.abspath(file)
        print(filePath, os.stat(file).st_uid)
Run Code Online (Sandbox Code Playgroud)

python file list absolute-path uid

1
推荐指数
1
解决办法
8259
查看次数

使用glob扫描文件路径

我正在搜索所有.csv位于子文件夹中,glob如下所示:

def scan_for_files(path):
    file_list = []
    for path, dirs, files in os.walk(path):
        for d in dirs:
            for f in glob.iglob(os.path.join(path, d, '*.csv')):
                file_list.append(f)
    return file_list
Run Code Online (Sandbox Code Playgroud)

如果我打电话:

path = r'/data/realtimedata/trades/bitfinex/' scan_for_files(path)

我得到了正确的递归文件列表:

['/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_12.csv',
 '/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_13.csv',
 '/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_15.csv',
 '/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_11.csv',
 '/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_09.csv',
 '/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_10.csv',
 '/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_08.csv',
 '/data/realtimedata/trades/bitfinex/btcusd/bitfinex_btcusd_trades_2018_05_14.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_14.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_12.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_10.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_08.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_09.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_15.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_11.csv',
 '/data/realtimedata/trades/bitfinex/ethusd/bitfinex_ethusd_trades_2018_05_13.csv']
Run Code Online (Sandbox Code Playgroud)

但是当使用包含我想要的文件的实际子目录时 - 它返回一个空列表.知道为什么会这样吗?谢谢.

path = r'/data/realtimedata/trades/bitfinex/btcusd/' scan_for_files(path) 收益: []

python glob

1
推荐指数
1
解决办法
34
查看次数

Python 重构此函数以将其认知复杂度从 19 降低到允许的 15

我从 sonarlint 看到这条消息,并试图找出如何降低此功能的认知复杂性。提前感谢任何帮助。

import os
import json
import click
import hcl

cfn = [".json", ".template", ".yaml", ".yml"]
tf  = ["tf"]

def file_handler(dir):
    for root, dirs, files in os.walk(dir):
        for file in files:
            if file.endswith(tuple(cfn)):
                with open(os.path.join(root, file), 'r') as fin:
                    try:
                        file = fin.read()
                        if "AWSTemplateFormatVersion" in file:
                            data = json.dumps(file)
                            print(data)

                    except ValueError as e:
                        raise SystemExit(e)

            elif file.endswith(tuple(tf)):
                with open(os.path.join(root, file), 'r') as file:
                    try:
                        obj  = hcl.load(file)
                        data = json.dumps(obj)
                        print(data)
                    except ValueError as e:
                        raise SystemExit(e) …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 sonarlint

0
推荐指数
1
解决办法
4995
查看次数