原代码如下,之后是我写入该文档的操作。
import numpy as np
import codecs
import time
if __name__ == '__main__':
allCount = 0
time = 0
lastnum = -1
lists = []
linenum = 0
#init numpy array
with open('B48W21 .txt', 'r') as f:
content = f.read()
for x in content.splitlines():
x = x.split(",")
lists.append(x)
a = np.array(lists)
[rows, cols] = a.shape
#open file
fzt = open("zerotime.txt", "w")
fot = open("onetime.txt", "w")
fz = open("zero.txt", "w")
fo = open("one.txt", "w")
fzm = open("zeromeans.txt", "w")
fom = open("onemeans.txt", "w")
我改后代码如下,但无法运行错误为:
File "", line 15
for ifile in file:
^
SyntaxError: invalid character in identifier
代码为
import numpy as np
import codecs
import time
import os
readfile='F:\\FCD\\实验2'
writefile='F:\\FCD\\实验副本2'
file=os.listdir(readfile)
if __name__ == '__main__':
allCount = 0
time = 0
lastnum = -1
lists = []
linenum = 0
for ifile in file:
#init numpy array
with open(readfile+'\\'+ifile, 'r') as f:
content = f.read()
for x in content.splitlines():
x = x.split(",")
lists.append(x)
a = np.array(lists)
[rows, cols] = a.shape
#open file
fzt = open(writefile+'\\'+'zerotime'+ifile, "w")
fot = open(writefile+'\\'+'onetime'+ifile, "w")
fz = open(writefile+'\\'+'zero'+ifile, "w")
fo = open(writefile+'\\'+'one'+ifile, "w")
fzm = open(writefile+'\\'+'zeromean'+ifile, "w")
fom = open(writefile+'\\'+'onemean'+ifile, "w")
还是说我的思路有问题?对已有文档进行操作的程序,同一文件夹下所有文档进行此操作,不能仅仅修改读写文件,还有其他需要更改的地方?
强烈建议,模块化,不要一堆全写到main,既不利于阅读,也不便于定位和分析错误。参考一下本人写的(未实际运行,可能有简单的拼写错误)
import numpy as np
import codecs
import os
# Deal one file and write output files into output_dir
# Return True for success, False for fail.
def deal(file, output_dir):
allCount = 0
time = 0
lastnum = -1
lists = []
linenum = 0
# Do your work of one file
if not os.path.isfile(file):
print 'Error: ', file, 'is not a file'
return False
# Init numpy array
with open(file, 'r') as f:
content = f.read()
for x in content.splitlines():
x = x.split(',')
lists.append(x)
a = np.array(lists)
[rows, cols] = a.shape
# Open files and do something
# Open files
fzt = open(os.path.join(output_dir, 'zerotime.txt'), 'w')
fot = open(os.path.join(output_dir, 'onetime.txt'), 'w')
fz = open(os.path.join(output_dir, 'zero.txt'), 'w')
fo = open(os.path.join(output_dir, 'one.txt'), 'w')
fzm = open(os.path.join(output_dir, 'zeromeans.txt'), 'w')
fom = open(os.path.join(output_dir, 'onemeans.txt'), 'w')
# Do something
# Close files
fzt.close()
fot.close()
fz.close()
fo.close()
fzm.close()
fom.close()
return True
if __name == '__main__':
if len(sys.argv) < 3:
print 'Usage: ', sys.argv[0], ' <input_dir> <output_dir>'
exit
# Parse cmdline
input_dir = sys.argv[1]
output_dir = sys.argv[2]
if not os.path.isdir(input_dir):
print "Error: invalid input_dir: ", input_dir
exit
if not os.path.isdir(output_dir):
print 'Warning: output_dir ', output_dir, ' doesn't exists, try to create it ...'
os.mkdir(output_dir)
if not os.path.isdir(output_dir):
print 'Error: fail to create output_dir ', output_dir
exit
# Do works
success_count = 0
fail_count = 0
for f in os.listdir(input_dir):
# Skip dir
if os.path.isdir(f):
print 'Info: skip dir ', f
continue
# Deal file
if deal(f, output_dir):
success_count += 1
else:
fail_count += 1
total_count = success_count + fail_count
print total_count, 'file(s) in ', input_dir, 'have(has) been dealed'
print 'Success: ', success_count
print 'Fail: ', fail_count
假设你有一个对所有文档的中一个文档进行的操作,假设函数为main(file),参数为file为文档路径。path为所有文档的路径,注意,不要掺杂其他文档
那么可以这样。
import os
file_list = os.listdir(path) #获取path路径下所有文档的名称+扩展名
for file in file_list:
main(path + "\" + file) 对所有文档进行main操作
忘采纳,有不懂追问
File "", line 15
for ifile in file:
^
SyntaxError: invalid character in identifier
这个问题明显是格式问题,检查一下,下一两行的空格是否正确