有没有PATH办法使用python以独立于平台的方式修改环境变量?
类似的东西os.path.join()?
我正在编写一个从选择文件开始的小实用程序,然后我需要选择一个文件夹.我想将文件夹默认为所选文件所在的位置.
OpenFileDialog.FileName返回完整的路径和文件名 - 我想要的只是获取路径部分(无文件名),所以我可以使用它作为初始选择的文件夹.
private System.Windows.Forms.OpenFileDialog ofd;
private System.Windows.Forms.FolderBrowserDialog fbd;
...
if (ofd.ShowDialog() == DialogResult.OK)
{
string sourceFile = ofd.FileName;
string sourceFolder = ???;
}
...
fbd.SelectedPath = sourceFolder; // set initial fbd.ShowDialog() folder
if (fbd.ShowDialog() == DialogResult.OK)
{
...
}
Run Code Online (Sandbox Code Playgroud)
有没有.NET方法可以做到这一点,还是我需要使用regex, split, trim,等?
将目录路径定义为变量或常量时,它是否应以尾部斜杠结尾?惯例是什么?
pwd在unix中显示当前目录没有尾部斜杠,而选项卡完成cd /var/www/apps/包括尾部斜杠,这让我不确定.
我的脚本严重依赖外部程序和脚本.我需要确保我需要调用的程序存在.手动,我会在命令行中使用"which"来检查.
有没有相当于File.exists?东西$PATH?
(是的,我想我可以解析,%x[which scriptINeedToRun]但这不是超级优雅.
谢谢!雅尼克
更新:这是我保留的解决方案:
def command?(command)
system("which #{ command} > /dev/null 2>&1")
end
Run Code Online (Sandbox Code Playgroud)
我试图将我的一个图像的相对路径放在我的Angular2应用程序中的图像src标记的assets文件夹中.我在我的组件中将变量设置为'fullImagePath'并在我的模板中使用它.我已经尝试了许多不同的可能路径,但似乎无法将我的图像提升.Angular2中是否有一些特殊路径始终相对于Django中的静态文件夹?
零件
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-hero',
templateUrl: './hero.component.html',
styleUrls: ['./hero.component.css']
})
export class HeroComponent implements OnInit {
fullImagePath: string;
constructor() {
this.fullImagePath = '../../assets/images/therealdealportfoliohero.jpg'
}
ngOnInit() {
}
}
Run Code Online (Sandbox Code Playgroud)
我也将图片放在与此组件相同的文件夹中,因此,由于模板和同一文件夹中的css正在工作,我不确定为什么类似的图像相对路径不起作用.这是与同一文件夹中的图像相同的组件.
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-hero',
templateUrl: './hero.component.html',
styleUrls: ['./hero.component.css']
})
export class HeroComponent implements OnInit {
fullImagePath: string;
constructor() {
this.fullImagePath = './therealdealportfoliohero.jpg'
}
ngOnInit() {
}
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="row">
<div class="col-xs-12">
<img [src]="fullImagePath">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
应用程序树*我省略了节点模块文件夹以节省空间
??? …Run Code Online (Sandbox Code Playgroud) 有人可以告诉我们/我,如果MAX_PATH问题仍然存在于Windows 10的(技术预览版)中.如果它存在:路径和单个文件名有多少个字符?
在python中我有变量base_dir和filename.我想将它们连接起来以获得fullpath.但在Windows下我应该使用\和POSIX /.
fullpath = "%s/%s" % ( base_dir, filename ) # for Linux
Run Code Online (Sandbox Code Playgroud)
如何使平台独立?
重复:与平台无关的文件路径?
我已经看过各种各样的例子和其他类似的问题,但我似乎无法找到一个与我的场景完全匹配的例子.我觉得这总是一个问题,因为有很多类似的问题,但我似乎无法让这个工作"正确".这是我的项目:
user_management (package)
|
|------- __init__.py
|
|------- Modules/
| |
| |----- __init__.py
| |----- LDAPManager.py
| |----- PasswordManager.py
|
|------- Scripts/
| |
| |----- __init__.py
| |----- CreateUser.py
| |----- FindUser.py
Run Code Online (Sandbox Code Playgroud)
如果我将"CreateUser.py"移动到主user_management目录,我可以轻松地使用:"import Modules.LDAPManager"导入LDAPManager.py ---这可行.我不能做的(我想做的)是将CreateUser.py保存在Scripts子文件夹中,然后导入LDAPManager.py.我希望通过使用来实现这一目标"import user_management.Modules.LDAPManager.py".这不起作用.简而言之,我可以让Python文件轻松地在层次结构中更深入地查看,但是我无法获得Python脚本来引用一个目录而不是另一个目录.
请注意,我能够使用以下方法解决我的问题:
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import Modules.LDAPManager as LDAPManager
Run Code Online (Sandbox Code Playgroud)
我听说这是不好的做法而且气馁.
脚本中的文件是直接执行的(脚本中的init .py甚至是必要的吗?).我已经读过,在这种情况下,我应该使用-m标志执行CreateUser.py.我已经尝试了一些变体,似乎无法让CreateUser.py识别LDAPManager.py.
如何从变量中提取路径和文件名?
Setlocal EnableDelayedExpansion
set file=C:\Users\l72rugschiri\Desktop\fs.cfg
Run Code Online (Sandbox Code Playgroud)
我想在不使用任何功能或任何GOTO的情况下这样做.可能吗?