小编Aus*_*n A的帖子

如何使用vba的shell()运行带参数的.exe?

我有一个目标文件路径,其结构如下所示.

C:\Program Files\Test\foobar.exe /G
Run Code Online (Sandbox Code Playgroud)

我需要做的是能够使用vba的shell()命令执行此文件.

我如何格式化文件路径以告诉Shell()它有一个参数,它需要调用以及运行.exe

我在下面看到/尝试过(无效),结果在右边.

file = """C:\Program Files\Test\foobar.exe"" /G"    <---Bad file name or number (Error 52) 
shell(file)

file2 = "C:\Program Files\Test\foobar.exe /G"       <---file never found
shell(file2)
Run Code Online (Sandbox Code Playgroud)

我已成功运行其他.exe使用shell()所以我知道它不是vba或函数的问题.

例:

works = "C:\Program Files\Test\test.exe"
shell(works)
Run Code Online (Sandbox Code Playgroud)

我对执行需要其他参数的文件的过程并不是特别熟悉,所以如果我错过了或者您需要更多信息,请告诉我.

parameters shell vba excel-vba command-line-arguments

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

如何使用Python 3.4(Windows 8)将utf-8打印到控制台?

我从来没有完全包围编码和解码unicode到其他格式(utf-8,utf-16,ascii等),但我已经到了一个令人困惑和令人沮丧的墙.我想要做的是从python模块打印utf-8卡符号(♠,♥,♦,♣)到Windows控制台.我正在使用的控制台是git bash,我使用console2作为前端.我尝试/阅读了下面的一些方法,到目前为止还没有任何工作.让我知道我正在做的事情是否可能以及正确的做法.

  • 确保控制台可以处理utf-8字符.这两个测试让我相信控制台不是问题.

在此输入图像描述

  • 从python模块尝试同样的事情.
    当我执行.py时,这就是结果.

    print(u'?')
    UnicodeEncodeError: 'charmap' codec can't encode character '\u2660' in position 0: character maps to <undefined>
    
    Run Code Online (Sandbox Code Playgroud)
  • 尝试编码♠.这让我回到了用utf-8编码的unicode集,但仍然没有spade符号.

    text = '?'
    print(text.encode('utf-8'))
    b'\xe2\x99\xa0'
    
    Run Code Online (Sandbox Code Playgroud)

我觉得我错过了一步或者没有理解整个编码/解码过程.我读过这个,这个,这个.最后一个页面的提示包裹sys.stdout的入代码,但文章说使用stdout是不必要的,点使用的编解码器模块的另一页.

我很困惑!我觉得很难找到关于这个主题的思想质量文档,希望有人可以清除它.任何帮助总是受到赞赏!

奥斯汀

python unicode console encoding utf-8

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

如何从mac终端打开emacs gui/ide?

我正在尝试在终端外的emacs上打开文件.当我编码而不是通过终端进行编码时,我更喜欢gui/ide环境.我最初认为打字emacs filename.py会通过Emacs.app打开该文件,但它只允许我通过终端编辑文件.当这不起作用时,我考虑编辑我的主目录中的.profile和.emacs文件,但这无济于事.

也许这比我读过的更直观,但我似乎无法弄明白.任何帮助表示赞赏.

ide macos emacs terminal user-interface

18
推荐指数
4
解决办法
4万
查看次数

Cygwin setup.exe在安装Windows 8期间挂起?我该怎么办?

所以过去几年我一直在使用Cygwin,我已经安装了几次.但是,我从未在安装过程中遇到过挂起的问题.当发生这种情况时,安装会逐渐冻结,并且不会让人感到沮丧.我已经读到这是一个有点常见的问题,但就像我说的那样,我以前从未遇到过它.

这是我正在做的事情以及它挂在我身上的逐个播放.

  1. http://cygwin.com/install.html下载Setup-x86.exe
  2. 从Internet安装
  3. 使用"C:\ cygwin"作为所有用户的默认根目录.
  4. 使用"C:\ Users\Austin\Downloads"作为默认的本地包目录
  5. 直接安装
  6. 根据这个问题使用http://mirrors.kernel.org.
  7. 我没有为安装指定任何其他项目(我认为最好在多次遇到此问题后尽可能简单.)
  8. 我不会改变任何"解决依赖关系"(无论那些是什么)
  9. ...一切都很好,直到某个软件包被绊倒并导致安装挂起.这在安装的不同点几乎总是不同的包.在这个例子中,它是texinfo-5.2-1.tar.xz,安装率为94%!很近!!!

所以我正在寻找的是如何从这一点开始帮助安装程序继续?我需要做些什么才能进入cygwin并为其提供完成工作所需的额外动力.


解决上面的问题:

因此,在稍微调整安装后,我发现如果您关闭冻结安装并重新执行安装文件,它会强制安装超过前一次遇到的安装点.例如,在取消94%的挂钩安装(如上所述)之后,我再次运行安装文件,并在安装再次陷入困境之前达到95%.在成功安装cygwin之前,我重复了这个设置大约5次.

就像我说的,这只是一个解决方案,可能是最好/唯一的解决方案.

windows cygwin

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

如何在八度音阶中绘制垂直线?

使用Octave绘制垂直线的最佳方法是什么?

octave line-plot

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

使用Python的multiprocessing.pool.map操作相同的整数

问题

我正在使用Python的多处理模块来异步执行功能。我想做的是能够跟踪每个进程调用和执行时脚本的总体进度def add_print。例如,我希望下面的代码在每次进程运行该函数时将其加1 total并打印出值(1 2 3 ... 18 19 20)。我的第一次尝试是使用全局变量,但这没有用。由于该函数是异步调用的,因此每个进程读取total为0开始,并独立于其他进程加1。因此,输出为20 1而不是递增值。

即使函数是异步运行的,我如何才能以同步方式从映射函数中引用相同的内存块?我的一个想法是以某种方式缓存total在内存中,然后在添加到时引用该确切的内存块total。这是python中一种可能且基本合理的方法吗?

请让我知道您是否需要更多信息或我的解释不够充分。

谢谢!


#!/usr/bin/python

## Import builtins
from multiprocessing import Pool 

total = 0

def add_print(num):
    global total
    total += 1
    print total


if __name__ == "__main__":
    nums = range(20)

    pool = Pool(processes=20)
    pool.map(add_print, nums)
Run Code Online (Sandbox Code Playgroud)

python asynchronous shared-memory multiprocessing shared-state

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

不了解Python的csv.reader对象

我在python的内置csv模块中遇到过一个我以前从未注意过的行为.通常,当我在csv中读取时,它几乎逐字地遵循文档,使用"with"打开文件,然后使用"for"循环遍历reader对象.但是,我最近尝试连续两次迭代csv.reader对象,结果发现第二个'for'循环没有做任何事情.

import csv

with open('smallfriends.csv','rU') as csvfile:
readit = csv.reader(csvfile,delimiter=',')

for line in readit:
    print line

for line in readit:
    print 'foo'
Run Code Online (Sandbox Code Playgroud)

控制台输出:

Austins-iMac:Desktop austin$ python -i amy.py 
['Amy', 'James', 'Nathan', 'Sara', 'Kayley', 'Alexis']
['James', 'Nathan', 'Tristan', 'Miles', 'Amy', 'Dave']
['Nathan', 'Amy', 'James', 'Tristan', 'Will', 'Zoey']
['Kayley', 'Amy', 'Alexis', 'Mikey', 'Sara', 'Baxter']
>>>
>>> readit
<_csv.reader object at 0x1023fa3d0>
>>> 
Run Code Online (Sandbox Code Playgroud)

所以第二个'for'循环基本上什么也没做.我有一个想法是csv.reader对象在被读取一次后从内存中释放.但事实并非如此,因为它仍然保留了它的内存地址.我找到了一篇提到类似问题的帖子.他们给出的原因是,一旦读取了对象,指针就会停留在内存地址的末尾,准备将数据写入对象.它是否正确?有人可以详细了解这里发生了什么吗?有没有办法将指针推回到内存地址的开头重新读取?我知道这样做是不好的编码实践,但我主要只是好奇并希望更多地了解Python的内容.

谢谢!

python memory csv pointers object

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