小编SiH*_*iHa的帖子

python脚本以递归方式在FTP中搜索特定的文件名以及24小时以上的文件名

我们的存储区域遇到了SMB连接问题,现在我们被迫定期使用FTP访问文件。因此,我没有使用Bash,而是尝试使用python,但遇到了一些问题。该脚本需要递归搜索FTP目录,并查找所有24小时以后的文件“ * 1700_m30.mp4”。然后在本地复制所有这些文件。

这是到目前为止的内容-但是我似乎无法获取脚本来下载文件或从文件中获取统计信息,这些信息告诉我它们是否比24小时更新。

#!/usr/bin/env python
# encoding: utf-8

import sys
import os
import ftplib
import ftputil
import fnmatch
import time

dir_dest = '/Volumes/VoigtKampff/Temp/TEST1/' # Directory where the files needs to be downloaded to
pattern = '*1700_m30.mp4' #filename pattern for what the script is looking for 
print 'Looking for this pattern :', pattern # print pattern


print "logging into GSP" # print 
host = ftputil.FTPHost('xxx.xxx','xxx','xxxxx') # ftp host info
recursive = host.walk("/GSPstor/xxxxx/xxx/xxx/xxx/xxxx",topdown=True,onerror=None) # recursive search 
for root,dirs,files in recursive:
    for …
Run Code Online (Sandbox Code Playgroud)

python ftp recursion ftputil

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

WPF Combobox问题

这只是一个快速的问题.

我有两个组合框,其中一个具有硬编码的数据:

<ComboBox>
    <ComboBoxItem/>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

当我尝试在SelectionChanged上使用case语句时,我得到Convert.ToString(cboForm.SelectedValue): "System.Windows.Controls.ComboBoxItem: Directional Bore"一个值.

现在在同一个表单上,我有另一个组合框,其中包含我填充的数据,comboboc.items.add()并且SelectionChanged之后的组合框的值是实际文本值.

有什么我可以做到没有"System.Windows.Controls.ComboBoxItem: "选定的值吗?

案例陈述:

string caseSwitch = cboForm.SelectedValue.ToString();
switch (caseSwitch)
{
    case "System.Windows.Controls.ComboBoxItem: Directional Bore":
    {
        ReportClass.DirBoreReport("","","");
        cboForm.SelectedIndex = -1;
        //MainAccess.Mw.SpecificForm = false;
        //MainAccess.Mw.frmPage.Height = 4400;
        //MainAccess.Mw.HoldPage = new Uri("DirectionalBore_Combined.xaml", UriKind.Relative);
        //if (NavigationService != null) NavigationService.Source = MainAccess.Mw.HoldPage;
        //MainAccess.Mw.SectionBar_DirectionalBore.Visibility = Visibility.Visible;
        //MainAccess.Mw.scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
        //MainAccess.Mw.lblForm.Content = "DIRECTIONAL BORE";
        //MainAccess.Mw.Sbar = MainAccess.Mw.SectionBar_DirectionalBore;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

XAML:

<ComboBox x:Name="cboForm" TabIndex="3" HorizontalAlignment="Left" Margin="746,618,0,0" VerticalAlignment="Top" Width="630" FontSize="48" FontWeight="Bold" Height="74" …
Run Code Online (Sandbox Code Playgroud)

c# wpf combobox

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

Python在列表维护顺序中插入项目

我有一个关于元组列表的问题.

test = [('a', 1, 40), ('a', 2, 5), ('b', 2, 6), ('b', 3, 1)]
Run Code Online (Sandbox Code Playgroud)

基本上,我想添加('a', 3, 0)('b', 2, 0)到列表中.最好是按照正确的顺序:

test = [('a', 1, 40), ('a', 2, 5), ('a',3 , 0), ('b' ,1 , 0) ('b', 2, 6), ('b', 3, 1)]
Run Code Online (Sandbox Code Playgroud)

有没有人有一个很好的和有效的想法如何做到这一点?我现在正在使用python 3.5.请注意,实际问题有点困难,因此手动添加点并不是一个明智的想法,因为它可能会有很大不同.

python

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

win32gui.FindWindow找不到窗口

我正在尝试使用Pywin32向无效的TeraTerm窗口发送击键.

这个答案让我写了这段代码:

import win32gui
import win32con
import win32api

hwndMain = win32gui.FindWindow("Tera Term VT", None)
print hwndMain
hwndChild = win32gui.GetWindow(hwndMain, win32con.GW_CHILD)
win32api.PostMessage(hwndChild, win32con.WM_CHAR, 0x5b, 0)
Run Code Online (Sandbox Code Playgroud)

但是:
hwndMain = win32gui.FindWindow("Tera Term VT", None)返回0,它找不到窗口.

如果我换"Tera Term VT""Notepad",我很乐意整天将键击发送到活动的记事本窗口.那么,为什么我不能进入TeraTerm窗口?

根据ActiveState文档:

PyHANDLE = FindWindow(ClassName,WindowName)

ClassName:PyResourceId要查找的窗口类的名称或原子,可以是None
WindowName:string要查找的窗口的标题,可以是None

那么如何才能使用正确的ClassName呢?

我已经尝试了几乎每一个变化Tera Term VT,逃避空间:"Tera\ Term\ VT"用单引号括起整个:"'Tera Term VT'"但是没有任何作用.我甚至尝试使用进程的名称:"ttermpro.exe",并"COM11:115200baud - Tera Term VT"在绝望中将子名称包含在字符串中,但没有任何作用.

有趣的是,这个:

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate("Tera Term …
Run Code Online (Sandbox Code Playgroud)

python windows winapi pywin32 teraterm

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

无法在 docker 容器内自动启动 jenkins

我写了一个 dockerfile 来使用厨师在容器内安装 jenkins。

我安装成功,但 jenkins 没有自动启动。我在 dockerfile 中实现了 CMD 命令,但无法做到。

我关注了一些关于此的文章,但在我的情况下不起作用

码头档案:

FROM centos:6

RUN yum -y update
RUN yum -y install wget
RUN yum -y install httpd
RUN wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-  ci.org/redhat/jenkins.repo
RUN rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
RUN yum -y install java
RUN yum -y install jenkins

CMD service jenkins start && tail -F /var/log/jenkins/jenkins.log
Run Code Online (Sandbox Code Playgroud)

厨师食谱:

include_recipe 'docker'

docker_node_data = '/tmp/docker1'

directory docker_node_data do
  action :create
end

cookbook_file "#{docker_node_data}/Dockerfile" do
  source 'Dockerfile'
end

docker_image 'jenkins7' do
  tag 'latest' …
Run Code Online (Sandbox Code Playgroud)

chef-infra jenkins docker

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

理解pyvmomi中的vim

我想了解pyvmomi中的vim.
据我所知,vim是这样导入的:from pyvmomi import vim
我试图找到pyvmomi中定义vim的位置,但我还没有找到它.

我尝试了以下步骤:

>>> inspect.getfile(vim)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/inspect.py", line 420, in getfile
    'function, traceback, frame, or code object'.format(object
TypeError: <pyVmomi.VmomiSupport.LazyModule object at 0xb50690> is not a     module, class, method, function, traceback, frame, or code object
>>> globals()['vim']
<pyVmomi.VmomiSupport.LazyModule object at 0xb50690>
>>> locals()['vim']
<pyVmomi.VmomiSupport.LazyModule object at 0xb50690>
>>> vim
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到如何在LazyModule中定义vim

我想了解
https://github.com/vmware/pyvmomi/tree/master/docs/vim 中列出的数据对象最初是在pyVmomi中定义的.

python vim pyvmomi

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

Python,从原始表单中排序我的列表

我一直在寻找,但没有发现任何符合我要求的线程.我正在尝试做的是从3个不同的选项排序列表,按时间顺序排列(原始列表),按字母顺序排列和反向排序.所有这些,我已经想到了,例如这里是我的清单:

movies = ["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"]
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

def print_movies():
    global movies
    j = 0
    while j < 1:
        print("Hur vill du skriva ut filmerna?")
        print("1. Kronologisk\n2. Alfabetisk stigande\n3. Alfabetisk fallande")
        choice = input()
        if int(choice) == 1:    
            print("Filmer i samlingen just nu:\n")
            for i in movies:
                print(i)
                j = j+1
        elif int(choice) == 2:
            print("Filmer i samlingen just nu:\n")
            movies.sort()
            for i in movies:
                print(i)
                j = j+1
        elif int(choice) == 3:
            print("Filmer i samlingen just …
Run Code Online (Sandbox Code Playgroud)

python sorting list

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

如何在遵循pylint规则的同时格式化长字符串?

我有一个非常简单的问题,我一直找不到解决方案,所以我想我会在这里试试我的“运气”。

我有一个完全使用变量和静态文本创建的字符串。如下:

filename_gps = 'id' + str(trip_id) + '_gps_did' + did + '_start' + str(trip_start) + '_end' + str(trip_end) + '.json'
Run Code Online (Sandbox Code Playgroud)

但是我的问题是 pylint 抱怨这个字符串表示太长了。这就是问题所在。我如何在多行上格式化这个字符串表示而不让它看起来很奇怪并且仍然保持在 pylint 的“规则”内?

有一次,我最终使它看起来像这样,但是看起来令人难以置信的“丑陋”:

filename_gps = 'id' + str(
    trip_id) + '_gps_did' + did + '_start' + str(
                trip_start) + '_end' + str(
                trip_end) + '.json'
Run Code Online (Sandbox Code Playgroud)

我发现如果我这样格式化它,它会遵循 pylint 的“规则”:

filename_gps = 'id' + str(
    trip_id) + '_gps_did' + did + '_start' + str(
    trip_start) + '_end' + str(
    trip_end) + '.json'
Run Code Online (Sandbox Code Playgroud)

哪个看起来更“漂亮”,但如果我没有“str()”强制转换,我将如何创建这样的字符串?

我怀疑 Python 2.x 和 3.x …

python string pylint python-3.x

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

使用MySQL获取整数的零数

假设我在MySQL(10090)中有一个整数值.我需要计算该数字中所有出现的零位数.因此对于前一种情况,它将返回3:

select count_zeros(number) from dual;
-- when number = 10090, it return 3
-- when number = 10000, it return 4
Run Code Online (Sandbox Code Playgroud)

如何使用MySQL查询以最快的方式执行此操作?

mysql

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

为文件夹中的文件生成dictonary元素列表

我正在制作一个脚本,列出目录中的现有文件,然后将它们保存到字典列表中.在目录中有两种类型的图像,"foo"和"bar",它们在名称的末尾有一个标识符,用于知道应该查看它们的位置,例如:

foo_1.jpg
foo_2.jpg
foo_5.jpg
bar_1.jpg
bar_2.jpg
bar_3.jpg
Run Code Online (Sandbox Code Playgroud)

我希望得到下一个结果:

files = [ {'position': 1, 'foo': '/img/foo_1.jpg','bar': '/img/bar_1.jpg'},
          {'position': 2, 'foo': '/img/foo_2.jpg','bar': '/img/bar_2.jpg'},
          {'position': 3, 'foo': '','bar': '/img/bar_3.jpg',
          {'position': 5, 'foo': '/img/foo_5.jpg','bar': ''} ]
Run Code Online (Sandbox Code Playgroud)

有我的代码:

def files_in_folder(folder_name):
    folder_path = os.path.join(current_app.config['UPLOAD_FOLDER'],   'files', str(folder_name))
    data = []
    if not os.path.isdir(folder_path):
        return [{}, {}, {}, {}, {}, {}, {}, {}, {}]
    else:
        for filename in os.listdir(folder_path):
            position = int(re.search('[0-9]+', filename).group())
            if "foo" in filename:
                foo_register = {'position': position,
                                'foo': folder_path + '/' + filename, 
                                'bar': …
Run Code Online (Sandbox Code Playgroud)

python dictionary list python-3.x

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