相关疑难解决方法(0)

在Windows上使用os.path.join混合斜杠

我倾向于只对路径使用正斜杠('/'),而python也对它在窗口上也很满意.在os.path.join的描述中,它表示如果你想跨平台,这是正确的方法.但是当我使用它时,我会得到混合斜杠:

import os

a = 'c:/'
b = 'myFirstDirectory/'
c = 'mySecondDirectory'
d = 'myThirdDirectory'
e = 'myExecutable.exe'


print os.path.join(a, b, c, d, e)

# Result:
c:/myFirstDirectory/mySecondDirectory\myThirdDirectory\myExecutable.exe
Run Code Online (Sandbox Code Playgroud)

它是否正确?我应该在之后检查并纠正它还是有更好的方法?

谢谢

编辑:当我要求路径时,我也会得到混合斜杠

import sys
for item in sys.path:
    print item

# Result:
C:\Program Files\Autodesk\Maya2013.5\bin
C:\Program Files\Autodesk\Maya2013.5\mentalray\scripts\AETemplates
C:\Program Files\Autodesk\Maya2013.5\Python
C:\Program Files\Autodesk\Maya2013.5\Python\lib\site-packages
C:\Program Files\Autodesk\Maya2013.5\bin\python26.zip\lib-tk
C:/Users/nookie/Documents/maya/2013.5-x64/prefs/scripts
C:/Users/nookie/Documents/maya/2013.5-x64/scripts
C:/Users/nookie/Documents/maya/scripts
C:\Program Files\Nuke7.0v4\lib\site-packages
C:\Program Files\Nuke7.0v4/plugins/modules
Run Code Online (Sandbox Code Playgroud)

python windows path

52
推荐指数
5
解决办法
6万
查看次数

Python setuptools正在从Windows上的路径参数中删除斜杠

我正在尝试安装setuptools包含console_scripts在Windows 7上的软件包.我正在尝试将我的值更改PYTHONUSERBASE为安装到带有--user标志的自定义目录中.如果我在值中使用反斜杠PYTHONUSERBASE,如

set PYTHONUSERBASE=C:\testing
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,如果我使用正斜杠,就像在

set PYTHONUSERBASE=C:/testing
Run Code Online (Sandbox Code Playgroud)

软件包本身安装到正确的位置,但是console_scripts(并且只有console_scripts)安装到C:testing\Scripts.显然,当存在正斜杠时,setuptools将路径视为仅用于console_scripts路径的相对路径.在我的真实包中,我正在从配置文件中读取值,所以我真的不必处理规范化路径分隔符,因为它也需要在Linux上工作.为了测试,我有一个包含该结构的包

|-- setup.py
|-- foobar\
|---- __init__.py
|---- __main__.py
Run Code Online (Sandbox Code Playgroud)

中的代码__main__.py

def main(): print('This is the main function')
Run Code Online (Sandbox Code Playgroud)

setup.py看起来像:

from setuptools import setup

setup(
    name='foobar',
    version='1.0.0',
    packages=['foobar'],
    entry_points={
        'console_scripts': [
            'foobar=foobar.__main__:main',
        ],
    },
)
Run Code Online (Sandbox Code Playgroud)

为什么要setuptools删除路径中的第一个正斜杠,我该如何解决?我认为这个问题与我的问题有关,但我认为它不能解决它:Windows上的Python os.path.join

python setuptools

9
推荐指数
1
解决办法
320
查看次数

为什么我不能从Python代码中"另存为"Excel文件?

我有一个Python ExcelDocument类,它提供了读取/写入/格式化Excel文件的基本方便方法,我在看似简单的Python代码中遇到了一个奇怪的错误.我有一个保存和saveAs方法:

def save(self):
   ''' Save the file '''
   self.workbook.Save()

def saveAs(self, newFileName):
   ''' Save the file as a new file with a different name '''
   self.workbook.SaveAs(newFileName)
Run Code Online (Sandbox Code Playgroud)

save方法工作正常,但是当我尝试调用saveAs方法时myExcelObject.saveAs("C:/test.xlsx")- 我收到以下错误:

Traceback (most recent call last):
  File "C:\workspace\Utilities\src\util\excel.py", line 201, in <module>
    excel.saveAs("C:/test.xlx")
  File "C:\workspace\Utilities\src\util\excel.py", line 185, in saveAs
    self.workbook.SaveAs(newFileName)
  File "<COMObject Open>", line 7, in SaveAs
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Office Excel', u"Microsoft Office Excel cannot access the file 'C:\\//8CBD2000'. There are …
Run Code Online (Sandbox Code Playgroud)

python save-as

6
推荐指数
1
解决办法
1万
查看次数

Os.path:你能解释一下这种行为吗?

我喜欢Python,因为它包括电池,我使用内置功能,为我做脏事.

我一直在愉快地使用os.path模块来处理文件路径,但最近我在Ubuntu linux下的Python 2.5上得到了意想不到的结果,同时处理代表Windows文件路径的字符串:

filepath = r"c:\ttemp\FILEPA~1.EXE"
print os.path.basename(filepath)
'c:\\ttemp\\FILEPA~1.EXE']
print os.path.splitdrive(filepath)
('', 'c:\ttemp\\FILEPA~1.EXE')
Run Code Online (Sandbox Code Playgroud)

WTF?

它以与filepath = u"c:\ ttemp\FILEPA~1.EXE"和filepath ="c:\ ttemp\FILEPA~1.EXE"相同的方式结束.

你有线索吗?Ubuntu使用UTF8,但我不觉得它与它有关.也许我的Python安装搞砸了,但我没有对它进行任何特别的调整,我记得.

python path

5
推荐指数
1
解决办法
1971
查看次数

Python:[错误3]系统找不到指定的路径:

import os
Current_Directory = os.getcwd() # Should be ...\archive
CORPUS_PATHS = sorted([os.path.join("archive", directories) for directories in os.listdir(Current_Directory)])
filenames = []
for items in CORPUS_PATHS:
    filenames.append(sorted([os.path.join(CORPUS_PATHS, fn) for fn in os.listdir(items)]))

print filenames
Run Code Online (Sandbox Code Playgroud)

我正在从一个名为archive的文件运行此代码,并且在archive中有更多文件夹,并且在每个这些文件夹中都有一个或多个文本文件。我要创建一个列表,其中包含每个这些文件夹的路径。但是,出现以下错误。

[Error 3] The system cannot find the path specified:
Run Code Online (Sandbox Code Playgroud)

我目前有python脚本,在该脚本中,我在与存档相同的文件夹中编写了此代码,它将触发此错误。我应该怎么做才能停止此错误并获取所有文件路径。

我不太擅长使用os,而且我不经常使用它,因此,如果这是一个琐碎的问题,我深表歉意。

编辑

import os
startpath = "archive"
corpus_path = sorted([os.path.join("archive/", directories) for directories in os.listdir(startpath)])

filenames = []
for items in corpus_path:
    print items
    path = [os.path.join(corpus_path, fn) for fn in os.listdir(items)]
    print path
Run Code Online (Sandbox Code Playgroud)

所以我取得了一些进展,现在我的语料库路径实质上是一个包含所有所需文件夹路径的列表。现在,我要做的就是获取这些文件夹中文本文件的所有路径,但是我仍然遇到问题,我不知道如何解决,但是出现诸如

File "C:\Users\David\Anaconda\lib\ntpath.py", …
Run Code Online (Sandbox Code Playgroud)

python windows operating-system

5
推荐指数
1
解决办法
3万
查看次数

连接两个文件夹名称

这应该很容易,但我坚持太多了.

如何连接两个文件夹名称?

例如:

ws = r'C:\Temp' 
folder = "Test"
Run Code Online (Sandbox Code Playgroud)

我希望得到一个结果,c:\Temp\Test但我所做的一切都会产生c:\TempTest.

我无法使用,+ "\"因为它是无效的操作.

python directory concatenation

4
推荐指数
1
解决办法
7371
查看次数

Python错误:"找不到指定的路径"

import os
import random

os.chdir("C:\Users\Mainuser\Desktop\Lab6")

#Am i supposed to have a os.chdir? 
# I think this is what's giving the error
#how do i fix this? 

def getDictionary():
      result = []
      f = open("pocket-dic.txt","r")
      for line in f:
            result = result + [ line.strip() ];
      return result

def makeText(dict, words=50):
      length = len(dict)
      for i in range(words):
            num = random.randrange(0,length)
            words = dict[num]
            print word,
            if (i+1) % 7 == 0:
                  print 
Run Code Online (Sandbox Code Playgroud)

Python给我一个错误,说它无法找到指定的路径,当我在桌面上清楚地有一个带有该名称的文件夹时.它可能是os.chidr ?? 我究竟做错了什么?

python random text path

3
推荐指数
1
解决办法
2万
查看次数