我的程序将从互联网上获取任意字符串并将其用于文件名.有没有一种简单的方法从这些字符串中删除坏字符或我是否需要为此编写自定义函数?
我在Windows上运行R,并在桌面上有一个csv文件.我加载如下,
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
Run Code Online (Sandbox Code Playgroud)
但R给出以下错误消息
错误:'\ U'在没有以十六进制数字开头的字符串中使用"C:\ U"
那么加载这个文件的正确方法是什么.我正在使用Vista
C++有没有与python函数相同的东西os.path.join?基本上,我正在寻找一种结合文件路径的两个(或更多)部分的东西,这样您就不必担心确保两个部分完美地结合在一起.如果它在Qt中,那也很酷.
基本上我花了一个小时调试一些代码,至少部分代码是因为root + filename必须root/ + filename,并且我希望将来避免这种情况.
我最近通过pear安装程序在我的服务器上安装了phpunit.
当我去运行测试时,我收到以下错误:
PHP警告:require_once(PHPUnit/Util/Filter.php):无法打开流:第44行/ usr/bin/phpunit中没有此类文件或目录
PHP致命错误:require_once():在44行/ usr/bin/phpunit中打开所需的'PHPUnit/Util/Filter.php'(include_path ='.:/ usr/bin/php')失败
在做了一些搜索之后,我尝试对服务器上的php.ini文件中的include_path进行一些修改.但这没有做到.
知道可能导致这种情况的原因吗?
我有一个路径(包括目录和文件名).
我需要测试文件名是否有效,例如,如果文件系统允许我创建具有这样名称的文件.
文件名中包含一些unicode字符.
可以安全地假设路径的目录段是有效且可访问的(我试图使问题更加适用,显然我太过分了).
除非必须,否则我非常不想逃避任何事情.
我发布了一些我正在处理的示例字符,但显然它们会被堆栈交换系统自动删除.无论如何,我想保留标准的unicode实体ö,并且只保留文件名中无效的东西.
这是捕获.可能(或可能不)已经是路径目标的文件.我需要保留该文件(如果它存在),如果不存在则不创建文件.
基本上我想检查是否可以写入路径而不实际打开写入路径(以及通常需要的自动文件创建/文件clobbering).
因此:
try:
open(filename, 'w')
except OSError:
# handle error here
Run Code Online (Sandbox Code Playgroud)
是不可接受的,因为它会覆盖我不想触摸的现有文件(如果它在那里),或者如果不存在则创建所述文件.
我知道我能做到:
if not os.access(filePath, os.W_OK):
try:
open(filePath, 'w').close()
os.unlink(filePath)
except OSError:
# handle error here
Run Code Online (Sandbox Code Playgroud)
但那会创建文件filePath,然后我必须这样做os.unlink.
最后,似乎花了6或7行来做一些应该简单os.isvalidpath(filePath)或类似的事情.
顺便说一下,我需要在(至少)Windows和MacOS上运行,所以我想避免特定于平台的东西.
``
可能重复:
如何使用c#仅获取目录中的文件名?
使用C#,我想获取文件夹中的文件列表.
我的目标:["file1.txt", "file2.txt"]
所以我写了这个:
string[] files = Directory.GetFiles(dir);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到了这个输出: ["C:\\dir\\file1.txt", "C:\\dir\\file2.txt"]
之后我可以删除不需要的"C:\ dir \"部分,但有更优雅的解决方案吗?
我想,我无法在这里看到更大的图景; 但基本上我不知道为什么你会使用os.path.join而不是正常的字符串连接?
我主要使用VBScript,所以我不明白这个功能的意义.
我正在io/ioutil阅读一个小文本文件:
fileBytes, err := ioutil.ReadFile("/absolute/path/to/file.txt")
Run Code Online (Sandbox Code Playgroud)
这样做很好,但这不是完全可移植的.在我的例子中,我要打开的文件在我的GOPATH中,例如:
/Users/matt/Dev/go/src/github.com/mholt/mypackage/data/file.txt
Run Code Online (Sandbox Code Playgroud)
由于data文件夹与源代码一起使用,我只想指定相对路径:
data/file.txt
Run Code Online (Sandbox Code Playgroud)
但后来我得到了这个错误:
恐慌:打开data/file.txt:没有这样的文件或目录
如何使用相对路径打开文件,特别是如果它们与我的Go代码一起使用?
我正在PHP中构建一个路径字符串.我需要它跨平台(即Linux,Windows,OS X)工作.我这样做:
$path = $someDirectory.'/'.$someFile;
Run Code Online (Sandbox Code Playgroud)
在各种平台上运行时假设$someDirectory并$someFile正确格式化.这适用于Linux和OS X,但不适用于Windows.问题是/我认为适用于Windows 的角色.
是否有PHP函数或其他技巧可以\在Windows上将其切换到运行时?
编辑:要清楚,结果字符串是
c:\Program Files (x86)\Sitefusion\Sitefusion.org\Defaults\pref/user.preferences
Run Code Online (Sandbox Code Playgroud)
在Windows上.显然,斜杠的混合会混淆Windows.
我尝试了一个解决方案(见下文)工作正常,除了在Android 4.4中调用startActivityForResult()一个名为"Open from"的活动,其中包含"Recent","Images","Downloads"以及几个可供选择的应用程序.当我选择"图像"并尝试解析返回的内容URI(使用下面的代码)时,调用cursor.getString()返回null.如果我使用Gallery应用程序选择完全相同的文件,则cursor.getString()返回文件路径.我只在API级别16和19中对此进行了测试.一切都按照16中的预期运行.至于19,我必须选择Gallery或其他应用程序,否则它不起作用.
private String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
return path;
} finally {
if (cursor != null) {
cursor.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)