我正在轉換我在Windows環境下編寫的一些Python腳本以在Unix(Red Hat 5.4)中運行,並且遇到了轉換問題處理文件路徑的行。在Windows中,我通常是在所有.txt文件使用類似讀取目錄中:Python - glob.glob在Unix操作系統中的指定文件路徑中找不到* .txt
pathtotxt = "C:\\Text Data\\EJC\\Philosophical Transactions 1665-1678\\*\\*.txt"
for file in glob.glob(pathtotxt):
似乎可以使用在Unix上glob.glob()方法爲好,所以我想實現這個方法找到使用下面的代碼的目錄名爲「源」中的所有文本文件:
#!/usr/bin/env python
import commands
import sys
import glob
import os
testout = open('testoutput.txt', 'w')
numbers = [1,2,3]
for number in numbers:
testout.write(str(number + 1) + "\r\n")
testout.close
sourceout = open('sourceoutput.txt', 'w')
pathtosource = "/afs/crc.nd.edu/user/d/dduhaime/data/hill/source/*.txt"
for file in glob.glob(pathtosource):
with open(file, 'r') as openfile:
readfile = openfile.read()
souceout.write (str(readfile))
sourceout.close
當我運行該代碼時,testout.txt文件出來的預期,但sourceout.txt文件是空的。我想如果我更改線路
pathtosource = "/afs/crc.nd.edu/user/d/dduhaime/data/hill/source/*.txt"
到
pathtosource = "/source/*.txt"
,然後運行/山目錄代碼中的問題可能得到解決,但是這並沒有解決我的問題。其他人知道我可以如何讀取源目錄中的文本文件?我會很感激別人可以提供的任何見解。
編輯:如果它是相關的,上面引用的目錄/ afs /樹位於遠程服務器上,我通過膩子ssh進入。我還使用了一個test.job文件來qsub上面的Python腳本。 (這是所有準備自己的SGE集羣系統上提交作業。)的test.job腳本的樣子:
#!/bin/csh
#$ -M [email protected]
#$ -m abe
#$ -r y
#$ -o tmp.out
#$ -e tmp.err
module load python/2.7.3
echo "Start - `date`"
python tmp.py
echo "Finish - `date`"
我解決了這個問題,但我認爲這是我的錯誤:)。很高興聽到它的作品。 – TobiMarg