假设我有一个格式为的文件:
key1/value1
key2/value2
key3/value3
....
Run Code Online (Sandbox Code Playgroud)
假设我有一个数组来保存这些值:
char *data[10][10]
Run Code Online (Sandbox Code Playgroud)
如何读取此文件并将key1,key2和key3输入数据[0] [0],数据[1] [0]和数据[2] [0].然后将value1,value2和value3放入data [0] [1],data [2] [1]和data [3] [1].所以实际上我想单独获取key1-key3的字符串,然后测试'/'字符然后获取value1-3的字符串.顺便说一句,当我将这些输入到文件中时,我将包含'\n'字符,以便您可以测试它以测试换行符.
我正试图摆脱括号[]和新线的\n印刷.
我的代码看起来像:
name1 = File.readlines('first.txt').sample(1)
name2 = File.readlines('middle.txt').sample(1)
name3 = File.readlines('last.txt').sample(1)
name = print (name1.strip
print name2.strip
print name3.strip)
puts name
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像JoshBobbyGreen.但是,它看起来像:
[\"Josh\\n\"][\"Bobby\\n\"][\"Green\\n\"]
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用.gsub,chomp并split但也许我使用他们错了.
我的代码中有一个函数应该读取文件。每个文件大约 8M,但是读取速度太低,为了改进我使用多处理。可悲的是,它似乎被阻止了。我想知道有没有有什么方法可以帮助解决这个问题并提高阅读速度?
我的代码如下:
import multiprocessing as mp
import json
import os
def gainOneFile(filename):
file_from = open(filename)
json_str = file_from.read()
temp = json.loads(json_str)
print "load:",filename," len ",len(temp)
file_from.close()
return temp
def gainSortedArr(path):
arr = []
pool = mp.Pool(4)
for i in xrange(1,40):
abs_from_filename = os.path.join(path, "outputDict"+str(i))
result = pool.apply_async(gainOneFile,(abs_from_filename,))
arr.append(result.get())
pool.close()
pool.join()
arr = sorted(arr,key = lambda dic:len(dic))
return arr
Run Code Online (Sandbox Code Playgroud)
和调用函数:
whole_arr = gainSortedArr("sortKeyOut/")
Run Code Online (Sandbox Code Playgroud) 我是python的新手,可能真的需要一些帮助(到目前为止,我还没有找到任何可以帮助我的东西)。
我想将csv文件读取为list,但是不幸的是我的输出与预期的不一样。而不是像这样的列表:
[[Weiz;61744],[Deutschlandsberg;5645]]
我有一个看起来像这样的列表:
[['W'],['e'],['i'], etc.]
我的代码如下所示:
def readCSV(file):
for row in open(file,"r+"):
ftpstream = urllib.request.urlopen(row)
csvFile = csv.reader(ftpstream.read().decode('latin-1'))
data = [row for row in csvFile]
for row in data:
print(row)
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我为什么它不起作用吗?我现在真的很挣扎...
我正在使用 dotnet core 开发 webApi,该核心从 IFormFile 获取 excel 文件并读取其内容。我正在关注文章 https://levelup.gitconnected.com/reading-an-excel-file-using-an-asp-net- core-mvc-application-2693545577db正在做同样的事情,只不过这里的文件存在于服务器上,而我的文件将由用户提供。
这是代码:
public IActionResult Test(IFormFile file)
{
List<UserModel> users = new List<UserModel>();
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
using (var stream = System.IO.File.Open(file.FileName, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
while (reader.Read()) //Each row of the file
{
users.Add(new UserModel
{
Name = reader.GetValue(0).ToString(),
Email = reader.GetValue(1).ToString(),
Phone = reader.GetValue(2).ToString()
});
}
}
}
return Ok(users);
}
}
Run Code Online (Sandbox Code Playgroud)
当 system.IO 尝试打开文件时,它无法找到路径,因为路径不存在。如何获取文件路径(根据用户选择的文件而有所不同)?还有其他方法可以实现吗?
PS:我不想先将文件上传到服务器上,然后再读取。
我调用ReadFile()WinAPI将文件内容复制到我的VC++代码中的char数组.在ReadFile()之后立即放置了GetLastError().
for( read some n no: of files)
{
FileRead(fp,destCharArray,ByesToRead,NoOfBytesRead,NULL);
int ret = GetLastError();
}
Run Code Online (Sandbox Code Playgroud)
GetLastError()仅在读取第一个文件时返回183.对于所有其他文件读取它返回183.但是当返回183时,文件的内容被复制到charArray.问题是文件读取不会发生在某些第28个文件中(这里返回状态也是183).无论文件读取成功还是不成功,都会返回183!
根据http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
错误代码183表示" ERROR_ALREADY_EXISTS ".
上述错误状态在ReadFile()上下文中表示什么?
任何人都可以帮助我找出原因吗?
我想在c中读取一个文件.我有一个.txt文件,它有这个内容:
file_one.txt file_two.txt file_three.txt file_four.txt
当我尝试使用fopen读取此文件时,我得到此输出:
file_one.txt file_two.txt file_three.txt file_four.txt\377
什么是\ 377是什么意思?这是我的代码.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char * argv[]){
FILE *filelist;
char ch;
filelist=fopen("file-path", "rt");
while (!feof(filelist)) {
ch = getc(filelist);
printf("%c",ch);
}
fclose(filelist);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我想检查一个字符串是否在文本文件中,然后附加该字符串,如果它不存在.
我知道我可以通过创建两个单独的with方法来实现这一点,一个用于读取,另一个用于追加,但是是否可以在同一个with方法中读取和追加?
我想出的最接近的是:
with open("file.txt","r+") as file:
content=file.read()
print("aaa" in content)
file.seek(len(content))
file.write("\nccccc")
Run Code Online (Sandbox Code Playgroud)
我的file.txt:
aaaaa
bbbbb
Run Code Online (Sandbox Code Playgroud)
当我第一次运行代码时,我得到了这个:
aaaaa
bbbbb
ccccc
Run Code Online (Sandbox Code Playgroud)
但是,如果我再次运行它,这会出现:
aaaaa
bbbbb
ccc
ccccc
Run Code Online (Sandbox Code Playgroud)
我希望第三行是ccccc.
任何人都可以解释为什么在第二次运行中截断最后两个字符?另外,如何读取文本并将其附加到文件中?
我正在尝试以 JSON 格式存储来自 API 的响应。我得到了字符串格式的 JSON 响应并存储在文件中。如何制作或转换缩进,如我们在 onlineJSONViewer 应用程序中看到的那样?或 JSON 格式。
我用来存储在文件中的代码。
def test_url(self):
resp =requests.get(www.myurl.com)
data = resp.text
f = open("19octfile.json", "w")
f.write(data)
f.close()
Run Code Online (Sandbox Code Playgroud)
此代码以以下格式将响应存储在 19octfile.json 中:
{"data": [{"id":"myname","id":"123","name":"myname","user":"m3","provider":"user","region":"india"}]}
Run Code Online (Sandbox Code Playgroud)
现在,我如何以 JSON 格式存储带有缩进的响应,以便用户在读取时可以轻松理解。
我的不同尝试但徒劳:
with codecs.open('data.json', 'w', 'utf8') as f:
f.write(json.dumps(data, sort_keys=True, ensure_ascii=False))
Run Code Online (Sandbox Code Playgroud)
with open('17octenv71232111.json', 'w') as outfile:
json.dump(data,outfile)
outfile.close()
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我是否有任何库可以完成格式工作或任何代码来提供帮助。
我的 while 循环中有以下代码,速度非常慢,有关如何改进此问题的任何建议?
open IN, "<$FileDir/$file" || Err( "Failed to open $file at location: $FileDir" );
my $linenum = 0;
while ( $line = <IN> ) {
if ( $linenum == 0 ) {
Log(" This is header line : $line");
$linenum++;
} else {
$linenum++;
my $csv = Text::CSV_XS->new();
my $status = $csv->parse($line);
my @val = $csv->fields();
$index = 0;
Log("number of parameters for this file is: $sth->{NUM_OF_PARAMS}");
for ( $index = 0; $index <= $#val; $index++ ) { …Run Code Online (Sandbox Code Playgroud) file-read ×10
python ×4
c ×2
file ×2
.net-core ×1
chomp ×1
csv ×1
database ×1
file-io ×1
file-upload ×1
file-writing ×1
json ×1
line ×1
newline ×1
performance ×1
perl ×1
ruby ×1
visual-c++ ×1
webapi ×1
while-loop ×1
winapi ×1