在Python中,假设我有这样的路径:
/folderA/folderB/folderC/folderD/
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到这个folderD
部分?
我正在尝试学习python并正在制作一个将输出脚本的程序.我想使用os.path.join,但我很困惑.根据文件,如果我说:
os.path.join('c:', 'sourcedir')
Run Code Online (Sandbox Code Playgroud)
我得到"C:sourcedir"
.根据文档,这是正常的,对吧?
但是当我使用copytree命令时,Python会以所需的方式输出它,例如:
import shutil
src = os.path.join('c:', 'src')
dst = os.path.join('c:', 'dst')
shutil.copytree(src, dst)
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误代码:
WindowsError: [Error 3] The system cannot find the path specified: 'C:src/*.*'
如果我换行os.path.join
与os.path.normpath
我得到同样的错误.
如果os.path.join
不能以这种方式使用,那么我对其目的感到困惑.
根据Stack Overflow建议的页面,不应该在连接中使用斜杠 - 这是正确的,我假设?
假设我有变量dir
并且分别file
包含表示目录和文件名的字符串.emacs lisp将它们连接到文件的完整路径的正确方法是什么?
例如,如果dir
是"/usr/bin"
和file
是"ls"
的话,我想"/usr/bin/ls"
.但是,如果不是dir
就是"/usr/bin/"
,我还是希望同样的事情,没有重复的斜线.
是否有任何标准(或广泛使用)的简单POSIX路径操作库用于C(路径连接,文件名剥离等)?
实际上,因为我主要在Windows下工作,所以我目前使用'shlwapi'路径功能.
是否有适用于POSIX路径的等效函数集?
以下简单的java代码获取Fortify Path Manipulation错误.请帮我解决这个问题.我很长时间都在苦苦挣扎.
public class Test {
public static void main(String[] args) {
File file=new File(args[0]);
}
}
Run Code Online (Sandbox Code Playgroud) Fortify安全审查向我们通报了一些路径操纵漏洞.大多数已经很明显,很容易修复,但我不明白如何解决以下问题.
string[] wsdlFiles = System.IO.Directory.GetFiles(wsdlPath, "*.wsdl");
Run Code Online (Sandbox Code Playgroud)
"wsdlPath"是从文本框输入的.这是不能修复的东西吗?我可以验证存在的路径等,但是如何帮助漏洞呢?
有几个关于字符串操作的问题,但我找不到允许我执行以下操作的答案——我认为它应该很简单......
我有一个 DataFrame,其中包含一个包含文件名和路径的列
下面生成一个具有代表性的示例 DataFrame:
index = ['1']
columns=['root']
df = pd.DataFrame(index=index,columns=columns)
path = 'C:\\folder1\\folder2\\folder3\\folder4\\filename.csv'
df['root']=path
df
Out[89]:
root
C:\folder1\folder2\folder3\folder4\filename.csv
1 rows × 1 columns
Run Code Online (Sandbox Code Playgroud)
我只想得到字符串的“文件名”部分。行数多,路径不固定,不能用str.replace
我可以像这样去掉最右边的“.csv”部分:
df['root'] = df['root'].str.rstrip('.csv')
df
Out[90]:
root
C:\folder1\folder2\folder3\folder4\filename
1 rows × 1 columns
Run Code Online (Sandbox Code Playgroud)
- 但我无法使用我读过的任何方法来删除字符串左侧的路径部分。
鉴于路径的前面元素可以从记录更改为记录,我如何仅返回此路径(字符串)的“文件名”部分?
有人有建议吗?非常感谢任何帮助。
将函数传递给文件的完整路径,例如C:\someFolder\anotherFolder\someXML.xml
,确定文件夹是否存在.这样做有更聪明/更好/更优雅的方式吗?这是我的实现:
Private Function FolderExists(ByVal fullPath As String) As Boolean
Dim folders() As String = fullPath.Split("\")
Dim folderPath As String = ""
For i As Integer = 0 To folders.Length - 2 'subtract 2 to avoid appending the filename.
folderPath += folders(i) + "\"
Next
Dim f As New DirectoryInfo(folderPath)
Return f.Exists
End Function
Run Code Online (Sandbox Code Playgroud) 我有一个rootPath
我信任的relativePath
,而我不信任.我希望以这样的方式组合它们,以确保结果不足rootPath
并且用户不能使用它..
来回到起点.我确实希望相对路径允许以下内容:hello\..\world
==world
我有一个这样的文件路径:
file_name = full_path + env + '/filename.txt'
Run Code Online (Sandbox Code Playgroud)
其中:
=> 文件名是 '/home/louis/key-files/prod/filename.txt'
我想使用 os.path.join
file_name = os.path.abspath(os.path.join(full_path, env, '/filename.txt'))
Run Code Online (Sandbox Code Playgroud)
但是返回的结果只有: file_name = '/filename.txt'
我怎样才能得到上面的预期结果?谢谢