问题列表 - 第38051页

如何在与Python脚本相同的目录中可靠地打开文件

我曾经只是使用像这样的命令打开与当前运行的Python脚本位于同一目录中的文件

open("Some file.txt", "r")
Run Code Online (Sandbox Code Playgroud)

但是,我发现当脚本在Windows中通过双击运行时,它会尝试从错误的目录中打开该文件.

从那以后我使用了表格的命令

open(os.path.join(sys.path[0], "Some file.txt"), "r")
Run Code Online (Sandbox Code Playgroud)

每当我想打开一个文件.这适用于我的特定用法,但我不确定是否sys.path[0]可能在其他一些用例中失败.

所以我的问题是:打开与当前运行的Python脚本位于同一目录中的文件的最佳和最可靠的方法是什么?

这是我到目前为止能够弄清楚的:

  • os.getcwd()os.path.abspath('')返回"当前工作目录",而不是脚本目录.

  • os.path.dirname(sys.argv[0])os.path.dirname(__file__)返回用于调用脚本的路径,该路径可能是相对的,甚至是空白的(如果脚本在cwd中).此外,__file__当脚本在IDLE或PythonWin中运行时不存在.

  • sys.path[0]并且os.path.abspath(os.path.dirname(sys.argv[0]))似乎返回脚本目录.我不确定这两者之间是否有任何区别.

编辑:

我刚刚意识到我想做的事情会更好地描述为"在与包含模块相同的目录中打开一个文件".换句话说,如果我导入了一个我在另一个目录中编写的模块,并且该模块打开了一个文件,我希望它在模块的目录中查找该文件.我认为我发现的任何东西都不能做到这一点......

python directory

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

如何在Qt中模拟消息总线?

我需要实现一个简单的消息总线:

  • 因此,一个过程不需要做D-Bus.
  • 发布/订阅类型化事件(甚至可以是QObjects)

我正在考虑使用QSignalMapper来标记"命名事件",然后从插槽重新发出或将发布者信号连接到用户的信号......

有什么建议吗?或者我应该采用相对简单的设计模式?

PS:在Windows上使用D-Bus的AFAICS,您需要安装"第三方"软件才能使用Qt.

qt dbus publish-subscribe

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

如何在谷歌地图v3中显示/隐藏MarkerCluster?

我需要为不同的mapTypes 使用不同的标记,我将它们推送到MarkerClusterer.

我用以下方法"隐藏"标记:

cluster.set("map", null);
cluster.resetViewport();
cluster.redraw();
Run Code Online (Sandbox Code Playgroud)

并"显示"他们:

cluster.set("map", MAP);
cluster.resetViewport();
cluster.redraw();
Run Code Online (Sandbox Code Playgroud)

问题是MarkerClusterer似乎不喜欢set("map", null); 它会引发错误TypeError: Object #<a MarkerClusterer> has no method 'remove'.如何以正确的方式显示/隐藏它们?

javascript google-maps-api-3 markerclusterer

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

检查Tic-Tac-Toe的胜利

好的,所以我已经完成了我的最新项目,一个(不可否认的是不太好)在Common Lisp中实现了Tic Tac Toe(整个程序可以在这里找到),但我最后一部分被困在了最后一个部分.我无法弄清楚如何获得检查胜利者工作的功能.函数(及其从属函数)如下所示:

(defun check-for-win ()
    (cond ((is-line 1 2 3) t)
            ((is-line 1 4 7) t)
            ((is-line 1 5 9) t)
            ((is-line 2 5 8) t)
            ((is-line 3 6 9) t)
            ((is-line 3 5 7) t)
            ((is-line 4 5 6) t)
            ((is-line 7 8 9) t))
    nil)

(defun is-line (a b c)
    (let ((a (aref *board* (- a 1)))
              (b (aref *board* (- b 1)))
              (c (aref *board* (- c 1))))
        (if (and 
                  (eql a b) …
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp

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

使用Java获取页面的上次修改日期

有没有一种标准的方法来判断页面上次修改的时间?目前我这样做:

URLConnection uCon = url.openConnection();
uCon.setConnectTimeout(5000);   // 5 seconds
String lastMod = uCon.getHeaderField("Last-Modified");
System.out.println("last mod: "+lastMod);
Run Code Online (Sandbox Code Playgroud)

但是看起来有些网站没有Last-Modified字段.

http://www.cbc.ca有以下标题字段:

X-Origin-Server
Connection
Expires
null
Date
Server
Content-Type
Transfer-Encoding
Cache-Control
Run Code Online (Sandbox Code Playgroud)

我可以解析一个页面来尝试获取它的日期,但这似乎是一个重大的痛苦.标准是什么?

(如果可能,我想坚持使用URLConnection,因为这是我用来下载网页的)

java webpage date

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

如何提高UIWebView滚动性能?

似乎很难提高UIWebView的性能,特别是对于像Mashable或Ars Technica这样的网站,其中加载了大量脚本并且长篇多页文章很常见.

我知道3个类似的问题,但它们都没有可行的解决方案:

我想知道这个问题是否有任何解决方案.欢迎任何建议.

iphone uiwebview

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

如何用C++保存程序?

我正在使用Visual C++ 2010 Express,我刚开始学习C++.

所以当我想运行这段代码时:

#include <iostream>
using namespace std;

int main(){
    cout << "Hello World! ";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它有效,但程序在我启动后立即退出,我该如何保持程序活着?

c++

4
推荐指数
3
解决办法
1614
查看次数

强制ajax调用清除缓存

我有一个cms,我可以在其中更改对象的位置.每次更改位置后,ajax调用都会更新整个对象列表.但不幸的是,一些数据存储在缓存中,并且没有可见的更改.有没有办法用javascript/request/other强制清除缓存?我试过'cache:false' $.ajax但它没有用.

这是一个示例页面:

http://ntt.vipserv.org/manage/playforward

我的js:

$(".object-position").livequery("change", function() {
    $("#objects-list input").attr('disabled', true);
    var action = $(this).attr('name');
    var position = $(this).attr('value');
    var id = $(this).attr("id");
    var model = id.split("-")[0];
    var object_id = id.split("-")[1];

    $("#loader").show();
    $("#loader").fadeIn(200);

    $.ajax({
        type: "POST",
        async: true,
        url: "/manage/update_position/",
        data: "action=" + action + "&model=" + model + "&object_id=" + object_id + "&position=" + position,
        dataType: "json",
        success: function(data){
            $("#loader").fadeOut("fast", function () {
                $("#loader").hide();
            });
            $("objects-list").html(data["html"]);
            $("#message").show();
            $("#message").fadeIn(400).html('<span>'+data["message"]+'</span>');
            setTimeout(function(){
                $("#message").fadeOut("slow", function () {
                    $("#message").hide();
                });
            }, 1500); 
        } …
Run Code Online (Sandbox Code Playgroud)

ajax jquery caching xmlhttprequest clear-cache

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

如何在Delphi应用程序中包含音频可视化?

嗨,我正在寻找一些组件或其他东西来做到这一点.我想要一个简单的示波器可视化,如KMPlayer,FLStudio,Multimedia Builder等.我能做什么?

Thnx提前

delphi

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

如何在pyGTK超时中调用函数?

当我尝试使用pyGtk中的超时调用函数时,我收到错误消息TypeError: second argument not callable.我想做的就是在超时内调用一个非常简单的函数.为了说明我的问题,我只是准备了函数do_nothing来说明我的问题.

def do_nothing(self):
    return True

# Do interval checks of the timer
def timed_check(self, widget):
    self.check_timing = gobject.timeout_add(500, self.do_nothing())
Run Code Online (Sandbox Code Playgroud)

这不起作用......

我究竟做错了什么?

python pygtk

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