精华内容
参与话题
问答
  • dirname(__FILE__) php中定义了一个很有用的常数,即 __file__ 这个内定常数是当前php程序的就是完整路径(路径+文件名)。 即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整...

    dirname(__FILE__)
    php中定义了一个很有用的常数,即

    __file__

    这个内定常数是当前php程序的就是完整路径(路径+文件名)。

    即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件完整路径。

    请看下面例子:
    /home/data/demo/test/a.php

    <?php
    $the_full_name=__FILE__;
    $the_dir=dirname(__FILE__);
    echo $the_full_name; //返回/home/data/demo/test/a.php
    echo $the_dir;            //返回/home/data/demo/test
    ?>


    home/data/demo/b.php
    <?php include "test/a.php";
    echo $the_full_name; //返回/home/data/demo/test/a.php 而不是/home/data/demo/b.php
    echo $the_dir;            //返回/home/data/demo/test 而不是/home/data/demo
    ?>

    简单地说:
          __FILE__     返回当前 路径+文件名
          dirname(__FILE__) 返回当前文件路径的 路径部分
          dirname(dirname(__FILE__));得到的是文件上一层目录名(不含最后一个“/”号)

    例如,当前文件是 /home/data/demo/test.php ,则
    __FILE__ 得到的就是完整路径       即 /home/data/demo/test.php ,而
    dirname(__FILE__)得到路径部分   即 /home/data/demo     (后面没有“/”号)

    展开全文
  • 在自己机器上试一下就...a=os.path.abspath(__file__) print(a) b=os.path.dirname(__file__) print(b) c=os.path.dirname(os.path.abspath(__file__)) print(c) D:\python2.7\ceshi.py D:\python2.7 D:\pytho...

    在自己机器上试一下就明白了

    import os
    a=os.path.abspath(__file__)
    print(a)
    b=os.path.dirname(__file__)
    print(b)
    c=os.path.dirname(os.path.abspath(__file__))
    print(c)
    
    D:\python2.7\ceshi.py
    D:\python2.7
    D:\python2.7

    展开全文
  • C语言中的__FILE__、__LINE__和__func__等预定义跟踪调试

    万次阅读 多人点赞 2017-11-24 22:46:31
    标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些...__FILE__ 当前源文件名,表示字符串型常量 __DATE__转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime

    标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。下面预定义宏表,被我抄了下来。

    • __LINE__  :当前程序行的行号,表示为十进制整型常量
    • __FILE__  :当前源文件名,表示字符串型常量
    • __DATE__ :转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime产生的。
    • __TIME__  :转换的时间,表示"hh:mm:ss"形式的字符串型常量,是有asctime产生的。(asctime貌似是指的一个函数)
    • __STDC__ :编辑器为ISO兼容实现时位十进制整型常量
    • __STDC_VERSION__  :如何实现复合C89整部1,则这个宏的值为19940SL;如果实现符合C99,则这个宏的值为199901L;否则数值是未定义
    • __STDC_EOBTED__ :(C99)实现为宿主实现时为1,实现为独立实现为0
    • __STDC_IEC_559__ :(C99)浮点数实现复合IBC 60559标准时定义为1,否者数值是未定义
    • __STDC_IEC_559_COMPLEX__: (C99)复数运算实现复合IBC 60559标准时定义为1,否者数值是未定义
    • __STDC_ISO_10646__ :(C99)定义为长整型常量,yyyymmL表示wchar_t值复合ISO 10646标准及其指定年月的修订补充,否则数值未定义

    C++中还定义了 __cplusplus

    C语言中的__FILE____LINE____DATE__等都在头文件#include<stdio.h>中

    其他说明:

    如果编译器不是标准的,则可能仅支持以上宏名中的几个,或根本不支持。记住编译程序也许还提供其它预定义的宏名。
    __LINE__ 及 __FILE__ 宏指示,#line指令可以改变它的值,简单的讲,编译时,它们包含程序的当前行数和文件名。
    __STDC__ 宏指令的意义是编译时定义的。一般来讲,如果__STDC__已经定义,编译器将仅接受不包含任何非标准扩展的标准C/C++代码。如果实现是标准的,则宏__STDC__含有十进制常量1。如果它含有任何其它数,则实现是非标准的。
    __cplusplus 与标准c++一致的编译器把它定义为一个包含至少6为的数值。与标准c++不一致的编译器将使用具有5位或更少的数值。


    常用宏的具体例子如下:

    C语言中的__LINE__用以指示本行语句在源文件中的位置信息,举例如下:

    #include <stdio.h>
    
    void main(void)
    {
        printf("%d\n",__LINE__);
        printf("%d\n",__LINE__);
        printf("%d\n",__LINE__);
    }
    该程序在linux用gcc编译,在windows的VS2013下编译都可以通过,执行结果都为:

    5
    6
    7

     

    还可以通过语句#line来重新设定__LINE__的值,举例如下:
     
    #include <stdio.h>
    
    /* 指定下一行的__LINE__为200,重点是line的下一行是200 */
    #line 200
    
    int main(void)
    {
        printf("%d\n",__LINE__);
        printf("%d\n",__LINE__);
        printf("%d\n",__LINE__);
    
    	return 0;
    }
    编译执行后输出结果为:
    203
    204
    205

     

    C语言中的__FILE__用以指示本行语句所在源文件的文件。

    例如,test.c文件内容如下:

    #include <stdio.h>
    
    int main()
    {
        printf("%s\n",__FILE__);
    }
     
    在gcc编译生成a.out,执行后输出结果为:
    test.c
     
     
    C语言中__DATE__和__TIME__表示时间和日期
    #include<stdio.h>
    
    void main(void)
    {
    	printf("%s\n",__DATE__);
    	printf("%s\n",__TIME__);
    }

    结果:

    Aug 26 2020
    23:18:22
     
    __STDC__是预定义宏。当它被定义后,编译器将按照ansic标准来编译你的c程序。
    __cplusplus用来定义是否是C++编译器
    #include <stdio.h>
    
    int main(void)
    {
    #ifdef _cplusplus
      printf("C++\n");
    #endif
     
    #ifdef __STDC__
      printf("C\n");
    #endif
    
     return 0;
    }

    输出结果为:

    C
     
    但是如果在前面定义_cplusplus
    #include <stdio.h>
    
    #define _cplusplus
    
    int main(void)
    {
    #ifdef _cplusplus
      printf("C++\n");
    #endif
     
    #ifdef __STDC__
      printf("C\n");
    #endif
    
      return 0;
    }

     

    那么输出就是:
    C++
    C
     
    另外gcc还支持__func__,和__FUNCTION__,它指示所在的函数,但是这个关键字不被windows下的vc6.0支持,举例如下
    #include <stdio.h>
    
    void main(void)
    {
        printf("%s\n",__FUNCTION__);
        printf("%s\n",__func__);
    }

    其编译后输出结果为

    main
    main
     

    注意: “#line”、 “__LINE__”、 “__FILE__" 及 “__func__" 都是大小写敏感的。

     

     

     
    展开全文
  • 认识下os.path.dirname(__file__)和os.path.abspath(__file__) 获取路径名:os.path.dirname() 获取文件所在目录的完整路径:os.path.dirname(__file__) 1 import os2 DATABASE_ENGINE='sqlite3'3 DATABASE_NAME=...

    认识下os.path.dirname(__file__)和os.path.abspath(__file__)

    获取路径名:os.path.dirname()

    获取文件所在目录的完整路径:os.path.dirname(__file__)

    1 import os2 DATABASE_ENGINE='sqlite3'3 DATABASE_NAME=os.path.join(os.path.dirname(__file__),'myAPP/mydata.db')

    其中 os.path.dirname(__file__)函数用于取出settings.py所在文件夹的位置,在用os.path.join()函数将该位置和后面指定的'myAPP/mydata.db' 字符串连接一起,实现sqlite3数据库文件mydata.db具体存放的位置。

     

    os.path.abspath(__file__)返回的是.py文件的绝对路径

    展开全文
  • __FILE__,__func__,__LINE__用法举例

    万次阅读 2018-03-02 15:45:46
    C语言中,__FILE__,__func__,__LINE__常用于logout,打trace,debug调试。注意:其使用不需要定义,__FILE__指示当前文件名__func__指示当前函数名__LINE__指示运行当前文件的行数。实验环境:Windows 系统 vc6.0// ...
  • os.path.abspath(__file__)用法及意义

    万次阅读 多人点赞 2019-08-21 09:33:14
    os.path.abspath(__file__) 作用: 获取当前脚本的完整路径 import os print(os.path.abspath(__file__) ) result: 注意: 只有当在脚本中执行的时候,os.path.abspath(__file__)才会起作用,因为该命令是...
  • import os def file_path(): '''打开当前运行脚本的绝对路径'''... paths=os.path.dirname(__file__) print paths '''切割路径''' newpaths=paths.split('/')[0] print newpaths '''打开完整路径''' new=os....
  • 使用__FILE__和__LINE__来定位错误

    千次阅读 2018-07-04 16:15:01
    [前言:使用__FILE__和__LINE__来定位错误已经屡见不鲜,然而其中一些道理又有几个人仔细探究过。本文参考了Curtis Krauskopf的一篇名为Using __FILE__ and __LINE__ to Report Errors 的文章,希望达到解惑之效。]...
  • Python __file__ 详解

    万次阅读 2016-07-31 18:29:50
    __file__表示显示文件当前的位置 但是: 如果当前文件包含在sys.path里面,那么,__file__返回一个相对路径! 如果当前文件不包含在sys.path里面,那么__file__返回一个绝对路径! 先来看测试:记住,下面的...
  • PHP获取绝对路径dirname(__FILE__)和__DIR__比较我们都知道,要获取当前PHP脚本所在目录的绝对路径,dirname(__FILE__) 和 __DIR__都可以...功能和效率dirname(__FILE__)由两部分组成, __FILE__ 魔术变量和 dirnam...
  • PHP的__FILE__用法

    万次阅读 2017-04-06 18:12:21
    __FILE__ ; // 取得当前文件的绝对地址,结果:D:\www\test.php  echo dirname(__FILE__); // 取得当前文件所在的绝对目录,结果:D:\www\  echo dirname(dirname(__FILE__)); //取得当前文件的上一层目录名,...
  • c: __FILE__, __LINE__

    千次阅读 2018-12-24 14:48:50
    这是编译器内置宏,...__FILE__ 包含当前程序文件名的字符串 __LINE__ 表示当前行号的整数 __DATE__ 包含当前日期的字符串 __STDC__ 如果编译器遵循ANSI C标准,它就是个非零值 __TIME__ 包含当前时间的字符串 ...
  • 我在C:\Users\owolf\Desktop目录下写了一个1.py文件,文件代码如下: ...#os.path.dirname(__file__)返回的是.py文件的目录 path1=os.path.dirname(__file__) print(path1) #os.path.abspat...
  • dirname(dirname(__FILE__)); 假设__FILE__为 /home/web/config/config.php  上面的方法输出为 /home/web  dirname(dirname(__FILE__));得到的是文件上一层目录名 dirname(__FILE__);...
  • C++ static char THIS_FILE[] = __FILE__

    千次阅读 2014-05-15 09:46:11
    C++ static char THIS_FILE[] = __FILE__; __FILE__为预编译器常量,返回当前编译的文件名,还有比较常用的几个预编译器常量, __LINE__编译器在编译的文件的第几行; __DATE__返回当前的日期Jul-20-2004; __...
  • python __file__ is not defined 解决方法

    千次阅读 2019-05-28 14:55:00
    __file__ 是在python module 被导入的时候生成的一个变量,所以在 __file__ 不能被使用,但是又想获取当前文件的路径应该怎么做: 方法一: import inspect, os.path filename = inspect.getframeinfo...
  • __FILE__, __FUNCTION__, __LINE__

    万次阅读 2012-05-05 09:26:34
    __FILE__, __FUNCTION__, __LINE__ 2008-07-25 19:19 9386人阅读 评论(1) 收藏 举报 调试常用的 __FILE__, __FUNCTION__, __LINE__ 调试常用的 __FILE__, __FUNCTION__, __LINE__ 没想到 ...
  • C语言中的__FILE__、__LINE__和#line

    千次阅读 2018-07-09 11:58:33
    C语言中的__FILE__用以指示本行语句所在源文件的文件名,举例如下(test.c):#include &lt;stdio.h&gt;int main(){printf("%s\n",__FILE__);}在gcc编译生成a.out,执行后输出结果为:test.c在...
  • Linux几个调试宏__FUNCTION__ __TIME__ __LINE__ __FILE__ __DATA__这几个宏是编译器内置的,不是在哪个头文件中包含的直接上最简单的例子就好了,没必要多说。源码:[cpp] view plain copy#include &lt;...
  • 去掉宏__FILE__的路径

    千次阅读 2017-04-14 23:08:50
    __FILE__展开后会带有路径信息
  • $dir = dirname(__FILE__); ?> 在PHP5.3中,增加了一个新的常量__DIR__,指向当前执行的PHP脚本所在的目录。 例如当前执行的PHP文件为 /www/website/index.php 则__FILE__等于'/www/website/index.ph
  • python3中 os.path.realpath(__file__) 的使用

    万次阅读 2019-05-25 22:29:36
    os.path.realpath 获取当前执行脚本的绝对路径。...os.path.dirname(os.path.realname(__file__))获取的__file__所在脚本的路径,也就是fileName.py的路径。 而os.getcwd()获取的当前最外层调用的脚本...
  • python __init__.py __name__ __doc__ __file__ argv[0]
  • 在C语言中 __FILE__:打印相应的文件名 __LINE__:打印语句在源代码中相应的行 __FUNCTION__:打印语句在源代码中相应的函数名
  • import os import sys print os.path.abspath(__...在Python控制台下,直接使用print __file__是会导致 name ‘__file__’ is not defined错误的,因为这时没有在任何一个脚本下执行,自然没有 __file__的定义了。
  • c语言中的__FILE__和__LINE__的作用

    千次阅读 2015-12-02 11:07:03
    例如:printf("FILE: %d, LINE: %d, %s/n", "__FILE__, __LINE__, "这里写上相关信息"); ANSI C标准中几个标准预定义宏: __LINE__:在源代码中插入当前源代码行号; __FILE__:在源文件中插入当前源文件
  • dirname(__FILE__)的含义和应用

    千次阅读 2015-02-04 15:55:18
    __FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称,dirname(__FILE__)."/f/".basename(__FILE__)则表示当前文件所在目录下的f...
  • 最近在项目中为了方便调试使用系统宏__FILE__将文件名打印出来,使用__FILE__发现会将文件所在的路径也打印出来,导致打印信息很长,不方便查看。 #define TRACE_INFO(format, args...) (printf("[INFO]-[%s]-...
  • #include #include int main() { printf("%s\n", __DATE__); printf("%s\n", __TIME__);... printf("Bug is here:%s on line\n", __FILE__, __FILE__); return 0; }  结果为: Mar 17 2013 19:15:59
  • C/C++,预定义宏,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:当前源代码文件名的字符串文字 __LINE__:当前源代码中的行号的整数常量 __DATE__:进行预处理的日期(“Mmm ...

空空如也

1 2 3 4 5 ... 20
收藏数 834,032
精华内容 333,612
关键字:

__file__