我是python的新手,我正在尝试创建一个文件,将当前脚本移动到该文件并运行它但我一直遇到同样的问题,它会创建一个文件夹,移动文件但是当我打开脚本,它创建一个新文件夹并移动文件。所以你最终得到的文件目录为:'C:somefile \ someotherfile \ newfile \ newfile \ newfile \ script.py'
请帮忙!
代码:
import os
curpath = ('.\\Test.py')
print(curpath)
newpath = ('.\\Example Folder\\')
if not os.path.exists(newpath) and curpath != ('..\\Example Folder\\Test.py'):
os.makedirs(newpath)
abspath=os.path.abspath(curpath)
print(abspath)
os.rename(abspath, newpath + 'Test.py')
编辑: 当给出的答案不起作用时,我花了2天时间尝试自己解决这个问题(以及在我发布之前尝试的那天)。我终于找到了答案!
import os
curpath = __file__.lower()
abspath=os.path.abspath(curpath)
newpath = ('.\\example folder\\')
notpath = '..\\example folder\\'
if not os.path.exists(newpath) and not os.path.exists(notpath):
os.makedirs(newpath)
os.rename(abspath, '.\\example folder\\test.py')
答案 0 :(得分:1)
let text = "Hello World"
let textRange = NSMakeRange(0, text.count)
let attributedText = NSMutableAttributedString(string: text)
attributedText.addAttribute(NSAttributedStringKey.strikethroughStyle,
value: NSUnderlineStyle.styleSingle.rawValue,
range: textRange)
myLabel.attributedText = attributedText
将始终评估为true,因为curpath != ('..\\Example Folder\\Test.py')
设置为curpath
且永远不会更改。这些是字符串,而不是文件位置,因此curpath = ('.\\Test.py')
永远不会等于'.\\Test.py'
你应该做的是:
将'C:\\<enter abs filepath>\\Test.py'
替换为curpath = ('.\\Test.py')
并替换
curpath = __file__.lower()
与
if not os.path.exists(newpath) and curpath != ('..\\Example Folder\\Test.py'):
希望这有帮助!
答案 1 :(得分:0)
curpath!=(&#39; .. \ Example Folder \ Test.py&#39;)将始终评估为 是的,因为curpath被设置为curpath =(&#39;。\ Test.py&#39;)并且永远不会 改变。这些是字符串,而不是文件位置,因此&#39;。\ Test.py&#39;将 永远不等于C:\\ Test.py&#39;
你应该做的是:
用curpath = 文件替换curpath =(&#39;。\ Test.py&#39;) .lower()
并替换
如果不是os.path.exists(newpath)和curpath!=(&#39; .. \例如 Folder \ Test.py&#39;):带
如果不是os.path.exists(newpath)和curpath!=&#39; c:\\ example folder \ test.py&#39; .lower():
表示&#34; c:\(输入完整的abs路径)&#34;我可以这样做:
path='.'
abpath=os.path.abspath(path)
and curpath != abpath + '\\example folder\test.py'.lower():
如果没有那么idk如何做idk我怎么会得到完整的abs路径因为有人可以在文档中拥有它而其他人可以在下载中获得它